diff --git a/ChangeLog b/ChangeLog index be57ca1..ad53ff7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2015-03-21 Fred Kiefer + + * Headers/x11/XGGeneric.h + * Source/x11/XGServerWindow.m: Correct name for atom + net_wm_state_modal_atom. Use this atom to try to set the sate for + dialog windows to modal. + 2015-02-27 Germán Arias * Source/cairo/CairoContext.m (-flushGraphics:): diff --git a/Headers/x11/XGGeneric.h b/Headers/x11/XGGeneric.h index 17ecd81..21b668f 100644 --- a/Headers/x11/XGGeneric.h +++ b/Headers/x11/XGGeneric.h @@ -60,7 +60,7 @@ typedef struct { typedef struct { Atom net_wm_state_atom; - Atom new_wm_state_modal_atom; + Atom net_wm_state_modal_atom; Atom net_wm_state_sticky_atom; Atom net_wm_state_maximized_vert_atom; Atom net_wm_state_maximized_horz_atom; diff --git a/Source/x11/XGServerWindow.m b/Source/x11/XGServerWindow.m index 8efe740..01eb89b 100644 --- a/Source/x11/XGServerWindow.m +++ b/Source/x11/XGServerWindow.m @@ -1308,7 +1308,7 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg) // Window state generic.netstates.net_wm_state_atom = XInternAtom(dpy, "_NET_WM_STATE", False); - generic.netstates.new_wm_state_modal_atom = + generic.netstates.net_wm_state_modal_atom = XInternAtom(dpy, "_NET_WM_STATE_MODAL", False); generic.netstates.net_wm_state_sticky_atom = XInternAtom(dpy, "_NET_WM_STATE_STICKY", False); @@ -3115,6 +3115,17 @@ static BOOL didCreatePixmaps; } } } + + if (window->win_attrs.window_level == NSModalPanelWindowLevel) + { + [self _sendRoot: window->root + type: generic.netstates.net_wm_state_atom + window: window->ident + data0: _NET_WM_STATE_ADD + data1: generic.netstates.net_wm_state_modal_atom + data2: 0 + data3: 1]; + } } XFlush(dpy); }