标签: window-managers

为什么在android中恢复活动会导致BadTokenException?

伙计们 - 谁能解释这个堆栈?请注意,我的代码无处可去.如果你谷歌中的任何一个例外,遇到此问题的每个人都试图在活动终止后创建对话框,这似乎不是这里的情况.这只是一个简单的活动简历.我经常看到该领域的客户报告此异常,并且如果可能的话想要纠正它.

android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@405177d8 is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:527)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.view.Window$LocalWindowManager.addView(Window.java:424)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2268)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2955)
at android.app.ActivityThread.access$1600(ActivityThread.java:124)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:972)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3806)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

更新:

以下是我能够远程检索此堆栈的方法.首先,我在我的活动的onCreate顶部添加了一个uncaughtExceptionHandler:

try {
  File crashLogDirectory = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + Constants.CrashLogDirectory);
  crashLogDirectory.mkdirs();

  Thread.setDefaultUncaughtExceptionHandler(new RemoteUploadExceptionHandler(this, crashLogDirectory.getCanonicalPath()));
} catch (Exception e) {
  if (MyActivity.WARN) Log.e(MyActivity.TAG, "Exception setting up …
Run Code Online (Sandbox Code Playgroud)

android window-managers android-activity

14
推荐指数
2
解决办法
4649
查看次数

我可以在KDE中获得一个合适的平铺窗口管理器吗?

切换到平铺窗口管理器我有点矛盾.我不久前做了这个开关,我真的很喜欢它,但是对于其他我不喜欢的东西.所以我最终切换回了我可靠的KDE.

但是,当我在我的虚拟桌面之间切换时,我不禁想到如果我能在KDE中拥有一个合适的平铺窗口管理器会有多棒.我知道kwin有一些平铺选项,但恕我直言他们很糟糕!我想要类似于i3的东西,所有的窗户装饰都被完全剥离了.

然后我更进一步思考这个想法,并开始思考如果我能够配置特定的虚拟桌面以获得这个平铺WM而其他人将拥有良好的旧浮动kwin行为,那将是多么令人难以置信的令人敬畏.

所以我问,有人知道这么棒吗?还有什么东西与此类似吗?如果没有这种特定于虚拟桌面的WM功能,即使只是某种方式在KDE中进行适当的平铺窗口管理?

我也很想听听那些对整个窗口管理概念有深刻理解的人,以及为什么如果事实如此,这是不可能的.是什么让它难以实施?

linux kde tiling window-managers

14
推荐指数
2
解决办法
2万
查看次数

Python 3 Tkinter无边框全屏应用程序

我在创建Python 3 tkinter应用程序时遇到了问题.我目前正在使用Mac OSX系统进行开发,但我通常使用Windows操作系统.

我希望应用程序占用整个屏幕而窗口管理器的标题栏和框架不在应用程序周围,通常称为游戏中的全屏无边框窗口.

我已经尝试使用root.attributes("-fullscreen", True)root.overrideredirect(True)root.wm_attributes("-topmost", 1).然而,包含该root.overrideredirect(True)线不允许它进入适当的全屏; 它仍然显示Mac Dock和任务栏,它还会破坏我在应用程序中的击键绑定.如果没有该root.overrideredirect(True)行,应用程序将进入全屏模式(隐藏停靠栏和任务栏),但窗口不会填满整个屏幕; 它在底部留下了一个空隙,它还保留了窗口管理器的标题栏和框架/边框.

这是我的代码示例:

import tkinter as tk

class App(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent)

        self.parent = parent

        self.initUI()

    def initUI(self):

        self.parent.title("Fullscreen Application")

        self.pack(fill="both", expand=True, side="top")

        self.parent.wm_state("zoomed")

        self.parent.bind("<F11>", self.fullscreen_toggle)
        self.parent.bind("<Escape>", self.fullscreen_cancel)

        self.fullscreen_toggle()

        self.label = tk.Label(self, text="Fullscreen", font=("default",120), fg="black")
        self.label.pack(side="top", fill="both", expand=True)

    def fullscreen_toggle(self, event="none"):

        self.parent.focus_set()
        self.parent.overrideredirect(True)

        self.parent.attributes("-fullscreen", True)
        self.parent.wm_attributes("-topmost", 1)

    def fullscreen_cancel(self, event="none"):

        self.parent.overrideredirect(False)
        self.parent.attributes("-fullscreen", False)
        self.parent.wm_attributes("-topmost", 0)

        self.centerWindow()

    def …
Run Code Online (Sandbox Code Playgroud)

window-managers tkinter fullscreen python-3.x

14
推荐指数
1
解决办法
4478
查看次数

仅从全屏浮动窗口中删除边框(XMonad配置)

我想要

  1. 从覆盖整个屏幕的浮动窗口(如mplayer)中移除边框(仅限),以及
  2. 当工作区中只有一个窗口时,使用不同的边框颜色(normalBorderColor).

目前,我正在使用XMonad.Layout.NoBorders中的smartBorders从mplayer中删除边框,并在该窗口是工作区中唯一的窗口时删除窗口的边框.但是,当我在两个工作区之间切换时,这两个工作区都有一个非浮动窗口(无论模式(高/镜像/满)),然后我看到窗口(在我正在改变的工作空间中)"跳"了一下,绘制边框,然后删除一小段时间(如果将borderWidth设置为大数,效果会更明显).

我的〜/ .xmonad/xmonad.hs的相关部分如下所示.

import XMonad.Hooks.ManageDocks
import XMonad.Layout.NoBorders
myLayout = tiled ||| Mirror tiled ||| Full
  where
    tiled   = Tall 1 (3/100) (3/5)                                 
main = xmonad $ defaultConfig 
                 { layoutHook = avoidStruts $ smartBorders $ myLayout 
                 , borderWidth = 4
                 , normalBorderColor  = "#000000" -- black
                 , focusedBorderColor = "#ff3f3f" -- reddish
                 }
Run Code Online (Sandbox Code Playgroud)

你们大家都知道我是如何实现这种效果的吗?(是第2部分.甚至是可能的吗?)对扩展和/或现有配置的建议和指示,以实现类似的效果非常感激.

haskell window-managers xmonad

13
推荐指数
1
解决办法
4561
查看次数

像Vim一样的窗口管理器

在我的日常工作中,我使用了很多vim作为我的编辑器和平铺窗口管理器很棒.在我看来,两者都是很好的工具.我不喜欢什么真棒(和其他多个平铺窗口管理器)是令人不愉快的键组合,如WIN+ ANY OTHER KEY.

是否有任何平铺窗口管理器,其行为类似于vim的普通模式和插入模式?在那里你可以点击windows-key进入window-manager模式(比如vims普通模式),做一些窗口安排和移动的东西,再次点击windows-key或其他一些键重新进入"插入模式"活动窗口捕获每个击键?

如果没有,是否可以让win-key或任何其他修饰符键表现得像Capslock?这样你就可以保持Win模式,直到你再次点击Windows键?

需要说明的是:我并不是指一个窗口管理器,它的行为类似于vims窗口管理,但它有两种不同的模式,只需按一下键盘即可实现.一种模式,其中每次击键是窗口管理命令,另一种模式是将每次击键发送到当前活动窗口.

我已经看到了这个问题,但我认为它被误解和关闭而没有任何有意义的答案.

vim tiling window-managers

13
推荐指数
0
解决办法
2663
查看次数

获取所有Xorg显示的列表

我想知道如何获得系统中所有Xorg显示的列表,以及与每个显示相关的屏幕列表.我花了一些时间查看Xlib文档,但无法找到能够满足我想要的功能.请假设除了POSIX投诉操作系统和X(例如,没有GTK)之外我没有其他依赖项.如果假设这些最小的依赖关系,我的问题是不可能的,那么使用其他库的解决方案就可以了.

非常感谢您的帮助!

c unix linux window-managers xorg

12
推荐指数
2
解决办法
1万
查看次数

xmonad垂直调整大小/窗口

我左边有几个垂直堆叠的瓷砖,右边有一些.我可以轻松地水平调整主窗格(使用mod + lmod + h),但我想在此设置中垂直调整某些窗口(包括非主窗口)的大小.

我该怎么做呢??

haskell window-managers xmonad

12
推荐指数
1
解决办法
3409
查看次数

如何删除真棒窗口管理器ver> 4中的标题栏

我最近升级了我的机器,现在我的版本是4.x. 现在有一个标题栏,有右边的关闭,ontop,浮动,最大化等按钮.我可以摆脱这个吗?我将使用什么配置来普遍关闭它?

window-managers awesome-wm

12
推荐指数
1
解决办法
8719
查看次数

WindowManager上添加的动画视图

我有一个视图(customView)添加到WindowManager.

WindowManager mWm = (WindowManager)activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams(WindowManager.LayoutParams.FILL_PARENT, 0, PixelFormat.TRANSPARENT);
mWl.dimAmount = 0.0f;
mWm.addView(customView, mWl);
Run Code Online (Sandbox Code Playgroud)

在自定义视图中,我会在按下关闭按钮时调用翻译动画.

////这是动画的处理程序////

final Handler translateHandler = new Handler();

final Runnable mtranslateUp = new Runnable() {
    public void run() {
        Log.v("TEST","mtranslateUp Runnable");
        startAnimation(translateUp);
    }
};
Run Code Online (Sandbox Code Playgroud)

////这是关闭按钮的监听器////

View.OnClickListener closeButtonListener = new View.OnClickListener() {         

    public void onClick(View v) {
        translateHandler.post(mtranslateUp);
    }
};
Run Code Online (Sandbox Code Playgroud)

////这是翻译动画////

translateUp = new TranslateAnimation(0,0,0,-200);
translateUp.setFillAfter(true);
translateUp.setDuration(1000);
translateUp.setAnimationListener(new AnimationListener(){
        @Override
        public void onAnimationEnd(Animation animation) {
            Log.v("TEST","translateUp onAnimationEnd");
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }

        @Override
        public void …
Run Code Online (Sandbox Code Playgroud)

android window-managers android-animation

11
推荐指数
2
解决办法
6109
查看次数

XCB是否已准备好投入生产?我应该使用Xlib吗?

如果需要对X11事件进行低级访问,不使用GTK进行窗口化和输入,QT等人应该使用Xlib还是XCB?各自的优点和缺点是什么?

unix linux x11 window-managers xcb

10
推荐指数
2
解决办法
3458
查看次数