Hello community, here is the log from the commit of package rdesktop checked in at Fri Nov 21 15:48:58 CET 2008. -------- --- rdesktop/rdesktop.changes 2008-11-11 18:21:06.000000000 +0100 +++ /mounts/work_src_done/STABLE/rdesktop/rdesktop.changes 2008-11-21 11:09:14.000000000 +0100 @@ -1,0 +2,7 @@ +Fri Nov 21 04:57:17 EST 2008 - davidr@novell.com + +- Fix resize restriction issue in NOMAD patch. +- Fix background color typo. +- Fix annoying keyboard grabbing issue. + +------------------------------------------------------------------- calling whatdependson for head-i586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rdesktop.spec ++++++ --- /var/tmp/diff_new_pack.x15185/_old 2008-11-21 15:48:15.000000000 +0100 +++ /var/tmp/diff_new_pack.x15185/_new 2008-11-21 15:48:15.000000000 +0100 @@ -25,7 +25,7 @@ Group: Productivity/Networking/Remote Desktop AutoReqProv: on Version: 1.6.0 -Release: 36 +Release: 37 Summary: A Remote Desktop Protocol client Source: %{name}-%{version}.tar.bz2 Patch0: rdesktop-1.4.0-lib64.dif @@ -83,6 +83,10 @@ %{_mandir}/man1/rdesktop.1.gz %changelog +* Fri Nov 21 2008 davidr@novell.com +- Fix resize restriction issue in NOMAD patch. +- Fix background color typo. +- Fix annoying keyboard grabbing issue. * Tue Nov 11 2008 davidr@novell.com - Fix DMX input focus handling. * Wed Oct 15 2008 davidr@novell.com ++++++ rdesktop-NOMAD.dif ++++++ --- /var/tmp/diff_new_pack.x15185/_old 2008-11-21 15:48:16.000000000 +0100 +++ /var/tmp/diff_new_pack.x15185/_new 2008-11-21 15:48:16.000000000 +0100 @@ -190,9 +190,18 @@ /* *INDENT-OFF* */ #ifdef __cplusplus diff --git a/rdesktop.c b/rdesktop.c -index 93798cc..aff431c 100644 +index 93798cc..4890080 100644 --- a/rdesktop.c +++ b/rdesktop.c +@@ -81,7 +81,7 @@ RD_BOOL g_packet_encryption = True; + RD_BOOL g_desktop_save = True; /* desktop save order */ + RD_BOOL g_polygon_ellipse_orders = True; /* polygon / ellipse orders */ + RD_BOOL g_fullscreen = False; +-RD_BOOL g_grab_keyboard = True; ++RD_BOOL g_grab_keyboard = False; + RD_BOOL g_hide_decorations = False; + RD_BOOL g_use_rdp5 = True; + RD_BOOL g_rdpclip = True; @@ -107,6 +107,10 @@ uint32 g_redirect_flags = 0; RD_BOOL g_rdpsnd = False; #endif @@ -204,7 +213,15 @@ #ifdef HAVE_ICONV char g_codepage[16] = ""; #endif -@@ -208,6 +212,9 @@ usage(char *program) +@@ -156,6 +160,7 @@ usage(char *program) + fprintf(stderr, " -C: use private colour map\n"); + fprintf(stderr, " -D: hide window manager decorations\n"); + fprintf(stderr, " -K: keep window manager key bindings\n"); ++ fprintf(stderr, " -G: prevent window manager key bindings\n"); + fprintf(stderr, " -S: caption button size (single application mode)\n"); + fprintf(stderr, " -T: window title\n"); + fprintf(stderr, " -N: enable numlock syncronization\n"); +@@ -208,6 +213,9 @@ usage(char *program) fprintf(stderr, " \"AKS\" -> Device vendor name \n"); #endif @@ -214,16 +231,27 @@ fprintf(stderr, " -0: attach to console\n"); fprintf(stderr, " -4: use RDP version 4\n"); fprintf(stderr, " -5: use RDP version 5 (default)\n"); -@@ -450,7 +457,7 @@ main(int argc, char *argv[]) +@@ -450,7 +458,7 @@ main(int argc, char *argv[]) #endif while ((c = getopt(argc, argv, - VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEmzCDKS:T:NX:a:x:Pr:045h?")) != -1) -+ VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEmzCDKS:T:NX:a:x:Pr:YW:w:045h?")) != -1) ++ VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEmzCDKGS:T:NX:a:x:Pr:YW:w:045h?")) != -1) { switch (c) { -@@ -772,6 +779,24 @@ main(int argc, char *argv[]) +@@ -600,6 +608,10 @@ main(int argc, char *argv[]) + g_grab_keyboard = False; + break; + ++ case 'G': ++ g_grab_keyboard = True; ++ break; ++ + case 'S': + if (!strcmp(optarg, "standard")) + { +@@ -772,6 +784,24 @@ main(int argc, char *argv[]) } break; @@ -248,7 +276,7 @@ case '0': g_console_session = True; break; -@@ -924,6 +949,21 @@ main(int argc, char *argv[]) +@@ -924,6 +954,21 @@ main(int argc, char *argv[]) if (g_lspci_enabled) lspci_init(); @@ -1047,7 +1075,7 @@ int ewmh_set_window_above(Window wnd); +int ewmh_set_window_fullscreen(Window wnd, int action); diff --git a/xwin.c b/xwin.c -index 83e75a8..5ac1ba6 100644 +index 83e75a8..6fa277f 100644 --- a/xwin.c +++ b/xwin.c @@ -22,6 +22,8 @@ @@ -1155,8 +1183,11 @@ if (g_seamless_rdp) { seamless_init(); -@@ -1968,7 +2018,7 @@ get_window_attribs(XSetWindowAttributes * attribs) - attribs->background_pixel = WhitePixelOfScreen(g_screen); +@@ -1965,10 +2015,9 @@ static void + get_window_attribs(XSetWindowAttributes * attribs) + { + attribs->background_pixel = BlackPixelOfScreen(g_screen); +- attribs->background_pixel = WhitePixelOfScreen(g_screen); attribs->border_pixel = WhitePixelOfScreen(g_screen); attribs->backing_store = g_ownbackstore ? NotUseful : Always; - attribs->override_redirect = g_fullscreen; @@ -1164,7 +1195,7 @@ attribs->colormap = g_xcolmap; } -@@ -1976,13 +2026,14 @@ static void +@@ -1976,13 +2025,14 @@ static void get_input_mask(long *input_mask) { *input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | @@ -1181,7 +1212,7 @@ *input_mask |= EnterWindowMask; if (g_grab_keyboard) *input_mask |= LeaveWindowMask; -@@ -2000,9 +2051,14 @@ ui_create_window(void) +@@ -2000,9 +2050,14 @@ ui_create_window(void) int wndwidth, wndheight; long input_mask, ic_input_mask; XEvent xevent; @@ -1198,7 +1229,7 @@ /* Handle -x-y portion of geometry string */ if (g_xpos < 0 || (g_xpos == 0 && (g_pos & 2))) -@@ -2010,9 +2066,15 @@ ui_create_window(void) +@@ -2010,9 +2065,15 @@ ui_create_window(void) if (g_ypos < 0 || (g_ypos == 0 && (g_pos & 4))) g_ypos = HeightOfScreen(g_screen) + g_ypos - g_height; @@ -1215,7 +1246,7 @@ wndheight, 0, g_depth, InputOutput, g_visual, CWBackPixel | CWBackingStore | CWOverrideRedirect | CWColormap | CWBorderPixel, &attribs); -@@ -2078,6 +2140,9 @@ ui_create_window(void) +@@ -2078,6 +2139,9 @@ ui_create_window(void) input_mask |= ic_input_mask; } @@ -1225,7 +1256,7 @@ XSelectInput(g_display, g_wnd, input_mask); XMapWindow(g_display, g_wnd); -@@ -2095,12 +2160,17 @@ ui_create_window(void) +@@ -2095,12 +2159,17 @@ ui_create_window(void) /* handle the WM_DELETE_WINDOW protocol */ g_protocol_atom = XInternAtom(g_display, "WM_PROTOCOLS", True); g_kill_atom = XInternAtom(g_display, "WM_DELETE_WINDOW", True); @@ -1244,7 +1275,27 @@ if (g_seamless_rdp) { seamless_restack_test(); -@@ -2154,30 +2224,7 @@ ui_destroy_window(void) +@@ -2118,9 +2187,16 @@ ui_resize_window() + sizehints = XAllocSizeHints(); + if (sizehints) + { +- sizehints->flags = PMinSize | PMaxSize; +- sizehints->min_width = sizehints->max_width = g_width; +- sizehints->min_height = sizehints->max_height = g_height; ++ if (g_dmx_root) ++ { ++ sizehints->flags = 0; ++ } ++ else ++ { ++ sizehints->flags = PMinSize | PMaxSize; ++ sizehints->min_width = sizehints->max_width = g_width; ++ sizehints->min_height = sizehints->max_height = g_height; ++ } + XSetWMNormalHints(g_display, g_wnd, sizehints); + XFree(sizehints); + } +@@ -2154,30 +2230,7 @@ ui_destroy_window(void) void xwin_toggle_fullscreen(void) { @@ -1276,7 +1327,7 @@ } static void -@@ -2267,6 +2314,38 @@ handle_button_event(XEvent xevent, RD_BOOL down) +@@ -2267,6 +2320,38 @@ handle_button_event(XEvent xevent, RD_BOOL down) } } @@ -1315,7 +1366,7 @@ /* Process events in Xlib queue Returns 0 after user quit, 1 otherwise */ -@@ -2300,6 +2379,17 @@ xwin_process_events(void) +@@ -2300,6 +2385,17 @@ xwin_process_events(void) break; case ClientMessage: @@ -1333,7 +1384,7 @@ /* the window manager told us to quit */ if ((xevent.xclient.message_type == g_protocol_atom) && ((Atom) xevent.xclient.data.l[0] == g_kill_atom)) -@@ -2382,10 +2472,6 @@ xwin_process_events(void) +@@ -2382,10 +2478,6 @@ xwin_process_events(void) break; } @@ -1344,7 +1395,7 @@ if (xevent.xmotion.window == g_wnd) { rdp_send_input(time(NULL), RDP_INPUT_MOUSE, MOUSE_FLAG_MOVE, -@@ -2405,7 +2491,7 @@ xwin_process_events(void) +@@ -2405,7 +2497,7 @@ xwin_process_events(void) break; g_focused = True; reset_modifier_keys(); @@ -1353,7 +1404,7 @@ XGrabKeyboard(g_display, g_wnd, True, GrabModeAsync, GrabModeAsync, CurrentTime); -@@ -2447,13 +2533,7 @@ xwin_process_events(void) +@@ -2447,13 +2539,7 @@ xwin_process_events(void) /* we only register for this event when in fullscreen mode */ /* or grab_keyboard */ g_mouse_in_wnd = True; @@ -1368,7 +1419,7 @@ XGrabKeyboard(g_display, g_wnd, True, GrabModeAsync, GrabModeAsync, CurrentTime); break; -@@ -2506,6 +2586,11 @@ xwin_process_events(void) +@@ -2506,6 +2592,11 @@ xwin_process_events(void) { xwin_refresh_pointer_map(); } @@ -1380,7 +1431,7 @@ break; -@@ -2547,6 +2632,15 @@ xwin_process_events(void) +@@ -2547,6 +2638,24 @@ xwin_process_events(void) break; case MapNotify: @@ -1388,15 +1439,24 @@ + { + if (xwin_check_dmx_name_prop (xevent.xmap.window)) + { ++ XSizeHints *sizehints; ++ + g_dmx_root = xevent.xmap.window; + XUngrabKeyboard(g_display, CurrentTime); ++ sizehints = XAllocSizeHints(); ++ if (sizehints) ++ { ++ sizehints->flags = 0; ++ XSetWMNormalHints(g_display, g_wnd, sizehints); ++ XFree(sizehints); ++ } + } + } + if (!g_seamless_active) rdp_send_client_window_status(1); break; -@@ -2577,6 +2671,10 @@ xwin_process_events(void) +@@ -2577,6 +2686,10 @@ xwin_process_events(void) sw_handle_restack(sw); break; @@ -1407,7 +1467,7 @@ } } /* Keep going */ -@@ -2612,6 +2710,8 @@ ui_select(int rdp_socket) +@@ -2612,6 +2725,8 @@ ui_select(int rdp_socket) tv.tv_sec = 60; tv.tv_usec = 0; @@ -1416,7 +1476,7 @@ #ifdef WITH_RDPSND rdpsnd_add_fds(&n, &rfds, &wfds, &tv); #endif -@@ -2628,6 +2728,8 @@ ui_select(int rdp_socket) +@@ -2628,6 +2743,8 @@ ui_select(int rdp_socket) error("select: %s\n", strerror(errno)); case 0: @@ -1425,7 +1485,7 @@ #ifdef WITH_RDPSND rdpsnd_check_fds(&rfds, &wfds); #endif -@@ -2638,6 +2740,8 @@ ui_select(int rdp_socket) +@@ -2638,6 +2755,8 @@ ui_select(int rdp_socket) continue; } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org