Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Usability: Add Dialog hints to Join/Split windows #3

Open
trueneu opened this issue Dec 20, 2021 · 0 comments
Open

Usability: Add Dialog hints to Join/Split windows #3

trueneu opened this issue Dec 20, 2021 · 0 comments

Comments

@trueneu
Copy link

trueneu commented Dec 20, 2021

I'm using i3wm, which is a tiling window manager for X11, and to determine whether to tile or float a window, it uses various X properties and hints.

Currently, when I invoke Realigner Split or Join, it tiles the dialog window, which is strange as the window has only a couple input fields. The correct way would be to pass something like _NET_WM_WINDOW_TYPE_DIALOG to the window, to make it float (currently the window type is _NET_WM_WINDOW_TYPE_NORMAL, which causes it to be tiled). I'm not at all sure how do you achieve this in a JetBrains plugin, right now I'm only able to look at it from the X side.

BTW, Wrap window works normally (strangely enough as it also has _NET_WM_WINDOW_TYPE_NORMAL, there must be other hints at play).

Here's full xprop output for Wrap:

_NET_WM_DESKTOP(CARDINAL) = 1
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
I3_FLOATING_WINDOW(CARDINAL) = 1
_NET_WM_USER_TIME(CARDINAL) = 17551602
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0xf5, 0x27, 0x40, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
XdndAware(ATOM) = BITMAP
_OL_DECOR_DEL(ATOM) = _OL_DECOR_RESIZE
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x24, 0x1a, 0x0, 0x0
_NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 20, 3
<skipped icons> 
_NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_TASKBAR
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: False
                window id # of group leader: 0x44027ee
WM_TRANSIENT_FOR(WINDOW): window id # 0x4400186
_NET_WM_PID(CARDINAL) = 34419
WM_CLIENT_MACHINE(STRING) = "home"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS
WM_CLASS(STRING) = "jetbrains-goland", "jetbrains-goland"
WM_CLIENT_LEADER(WINDOW): window id # 0x4400005
_NET_WM_ICON_NAME(UTF8_STRING) = "Wrap Text"
WM_ICON_NAME(STRING) = "Wrap Text"
_NET_WM_NAME(UTF8_STRING) = "Wrap Text"
WM_NAME(STRING) = "Wrap Text"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 3837, 1060
                program specified location: 3837, 1060
                program specified size: 658 by 205
                program specified minimum size: 658 by 205
                program specified maximum size: 658 by 205
                window gravity: NorthWest

Here's for Split:

_NET_WM_DESKTOP(CARDINAL) = 1
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_USER_TIME(CARDINAL) = 17742009
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x26, 0x1e, 0x0, 0x0
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x27, 0x28, 0x40, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
XdndAware(ATOM) = BITMAP
_NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 20, 3
<skipped icons>
_NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_TASKBAR
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: False
                window id # of group leader: 0x4402820
WM_TRANSIENT_FOR(WINDOW): window id # 0x4400186
_NET_WM_PID(CARDINAL) = 34419
WM_CLIENT_MACHINE(STRING) = "home"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS
WM_CLASS(STRING) = "jetbrains-goland", "jetbrains-goland"
WM_CLIENT_LEADER(WINDOW): window id # 0x4400005
_NET_WM_ICON_NAME(UTF8_STRING) = "Split by Delimiter"
WM_ICON_NAME(STRING) = "Split by Delimiter"
_NET_WM_NAME(UTF8_STRING) = "Split by Delimiter"
WM_NAME(STRING) = "Split by Delimiter"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 3840, 26
                program specified location: 3840, 26
                program specified size: 479 by 240
                window gravity: NorthWest

And here's for Goland's settings window:

_NET_WM_DESKTOP(CARDINAL) = 1
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
I3_FLOATING_WINDOW(CARDINAL) = 1
_NET_WM_USER_TIME(CARDINAL) = 17812525
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x26, 0x1e, 0x0, 0x0
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x56, 0x28, 0x40, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
XdndAware(ATOM) = BITMAP
_NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 20, 3
<skipped icons>
_NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_TASKBAR
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: False
                window id # of group leader: 0x4400186
WM_TRANSIENT_FOR(WINDOW): window id # 0x4400186
_NET_WM_PID(CARDINAL) = 34419
WM_CLIENT_MACHINE(STRING) = "home"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS
WM_CLASS(STRING) = "jetbrains-goland", "jetbrains-goland"
WM_CLIENT_LEADER(WINDOW): window id # 0x4400005
_NET_WM_ICON_NAME(UTF8_STRING) = "Settings"
WM_ICON_NAME(STRING) = "Settings"
_NET_WM_NAME(UTF8_STRING) = "Settings"
WM_NAME(STRING) = "Settings"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 3043, 256
                program specified location: 3043, 256
                program specified size: 1529 by 1081
                program specified minimum size: 1350 by 1050
                window gravity: NorthWest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant