Hand-apply patches (rail) from Authentic8 branch: e94d059 c36dc61

ulab-next
Jim Grandy 11 years ago
parent 3401febd26
commit 3454e19a12

@ -145,7 +145,7 @@ struct rail_window_data
#define RAIL_EXT_STYLE_DIALOG (0x00040000) #define RAIL_EXT_STYLE_DIALOG (0x00040000)
static int APP_CC rail_win_get_state(Window win); static int APP_CC rail_win_get_state(Window win);
static int APP_CC rail_create_window(Window window_id, Window parent_id); static int APP_CC rail_create_window(Window window_id, Window owner_id);
static int APP_CC rail_win_set_state(Window win, unsigned long state); static int APP_CC rail_win_set_state(Window win, unsigned long state);
static int APP_CC rail_show_window(Window window_id, int show_state); static int APP_CC rail_show_window(Window window_id, int show_state);
static int APP_CC rail_win_send_text(Window win); static int APP_CC rail_win_send_text(Window win);
@ -538,6 +538,7 @@ rail_process_activate(struct stream *s, int size)
int window_id; int window_id;
int enabled; int enabled;
XWindowAttributes window_attributes; XWindowAttributes window_attributes;
Window transient_for = 0;
LOG(10, ("chansrv::rail_process_activate:")); LOG(10, ("chansrv::rail_process_activate:"));
in_uint32_le(s, window_id); in_uint32_le(s, window_id);
@ -553,6 +554,12 @@ rail_process_activate(struct stream *s, int size)
/* In case that window is unmapped upon minimization and not yet mapped*/ /* In case that window is unmapped upon minimization and not yet mapped*/
XMapWindow(g_display, window_id); XMapWindow(g_display, window_id);
} }
XGetTransientForHint(g_display, window_id, &transient_for);
if (transient_for > 0)
{
// Owner window should be raised up as well
XRaiseWindow(g_display, transient_for);
}
LOG(10, ("chansrv::rail_process_activate: calling XRaiseWindow 0x%8.8x", window_id)); LOG(10, ("chansrv::rail_process_activate: calling XRaiseWindow 0x%8.8x", window_id));
XRaiseWindow(g_display, window_id); XRaiseWindow(g_display, window_id);
LOG(10, ("chansrv::rail_process_activate: calling XSetInputFocus 0x%8.8x", window_id)); LOG(10, ("chansrv::rail_process_activate: calling XSetInputFocus 0x%8.8x", window_id));
@ -1165,7 +1172,7 @@ rail_show_window(Window window_id, int show_state)
/*****************************************************************************/ /*****************************************************************************/
static int APP_CC static int APP_CC
rail_create_window(Window window_id, Window parent_id) rail_create_window(Window window_id, Window owner_id)
{ {
int x; int x;
int y; int y;
@ -1230,7 +1237,7 @@ rail_create_window(Window window_id, Window parent_id)
{ {
style = RAIL_STYLE_DIALOG; style = RAIL_STYLE_DIALOG;
ext_style = RAIL_EXT_STYLE_DIALOG; ext_style = RAIL_EXT_STYLE_DIALOG;
parent_id = transient_for; owner_id = transient_for;
} }
else else
{ {
@ -1243,7 +1250,7 @@ rail_create_window(Window window_id, Window parent_id)
out_uint32_le(s, 2); /* create_window */ out_uint32_le(s, 2); /* create_window */
out_uint32_le(s, window_id); /* window_id */ out_uint32_le(s, window_id); /* window_id */
out_uint32_le(s, parent_id); /* owner_window_id */ out_uint32_le(s, owner_id); /* owner_window_id */
flags |= WINDOW_ORDER_FIELD_OWNER; flags |= WINDOW_ORDER_FIELD_OWNER;
out_uint32_le(s, style); /* style */ out_uint32_le(s, style); /* style */
out_uint32_le(s, ext_style); /* extended_style */ out_uint32_le(s, ext_style); /* extended_style */
@ -1703,6 +1710,7 @@ rail_xevent(void *xevent)
LOG(10, (" window 0x%8.8x is unmapped", lxevent->xunmap.window)); LOG(10, (" window 0x%8.8x is unmapped", lxevent->xunmap.window));
if (index >= 0) if (index >= 0)
{ {
#if 0
XGetWindowAttributes(g_display, lxevent->xunmap.window, &wnd_attributes); XGetWindowAttributes(g_display, lxevent->xunmap.window, &wnd_attributes);
if (wnd_attributes.override_redirect) if (wnd_attributes.override_redirect)
{ {
@ -1710,6 +1718,10 @@ rail_xevent(void *xevent)
rail_show_window(lxevent->xunmap.window, 0x0); rail_show_window(lxevent->xunmap.window, 0x0);
rv = 0; rv = 0;
} }
#else
rail_show_window(lxevent->xunmap.window, 0x0);
rv = 0;
#endif
} }
} }
break; break;

Loading…
Cancel
Save