X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.c;h=4ad46af738c79135dd8118b28c633a88ac1b0e2f;hb=ed4d0ca31a9c1c6c815cb87a058bb1d36a0888c1;hp=1cbb2a5ec2ecceb765442b593dab7ad14d24b428;hpb=b67e98842c65d9ce8caeae0bc512ccfa5336605f;p=chaz%2Fopenbox diff --git a/openbox/screen.c b/openbox/screen.c index 1cbb2a5e..4ad46af7 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -153,7 +153,7 @@ static gboolean replace_wm() return TRUE; } -gboolean screen_annex(const gchar *program_name) +gboolean screen_annex() { XSetWindowAttributes attrib; pid_t pid; @@ -190,7 +190,6 @@ gboolean screen_annex(const gchar *program_name) return FALSE; } - screen_set_root_cursor(); /* set the OPENBOX_PID hint */ @@ -203,7 +202,7 @@ gboolean screen_annex(const gchar *program_name) net_supporting_wm_check, window, screen_support_win); /* set properties on the supporting window */ - PROP_SETS(screen_support_win, net_wm_name, program_name); + PROP_SETS(screen_support_win, net_wm_name, "Openbox"); PROP_SET32(screen_support_win, net_supporting_wm_check, window, screen_support_win); @@ -289,10 +288,11 @@ gboolean screen_annex(const gchar *program_name) supported[i++] = prop_atoms.kde_net_wm_frame_strut; supported[i++] = prop_atoms.kde_net_wm_window_type_override; - supported[i++] = prop_atoms.openbox_wm_state_undecorated; + supported[i++] = prop_atoms.ob_wm_action_undecorate; + supported[i++] = prop_atoms.ob_wm_state_undecorated; supported[i++] = prop_atoms.openbox_pid; - supported[i++] = prop_atoms.openbox_config; - supported[i++] = prop_atoms.openbox_control; + supported[i++] = prop_atoms.ob_config; + supported[i++] = prop_atoms.ob_control; g_assert(i == num_support); PROP_SETA32(RootWindow(ob_display, ob_screen), @@ -506,12 +506,12 @@ void screen_set_desktop(guint num, gboolean dofocus) to call xsetinputfocus on the window ourselves. otherwise there is no guarantee the window will actually take focus.. */ if (c->can_focus) { - /* do this here so that if you switch desktops to a window with - helper windows then the helper windows won't flash */ - client_bring_helper_windows(c); /* reduce flicker by hiliting now rather than waiting for the server FocusIn event */ frame_adjust_focus(c->frame, TRUE); + /* do this here so that if you switch desktops to a window with + helper windows then the helper windows won't flash */ + client_bring_helper_windows(c); } } @@ -523,7 +523,7 @@ void screen_set_desktop(guint num, gboolean dofocus) } } - event_ignore_queued_enters(); + event_ignore_all_queued_enters(); if (event_curtime != CurrentTime) screen_desktop_user_time = event_curtime; @@ -663,7 +663,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, { guint r, c; static guint d = (guint)-1; - guint ret; + guint ret, oldd; if (d == (guint)-1) d = screen_desktop; @@ -671,6 +671,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, if ((cancel || done) && dialog) goto show_cycle_dialog; + oldd = d; get_row_col(d, &r, &c); if (linear) { @@ -696,19 +697,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_EAST: ++c; if (c >= screen_desktop_layout.columns) { - if (wrap) { + if (wrap) c = 0; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { ++c; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } } @@ -716,19 +715,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_WEST: --c; if (c >= screen_desktop_layout.columns) { - if (wrap) { + if (wrap) c = screen_desktop_layout.columns - 1; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { --c; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } } @@ -736,19 +733,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_SOUTH: ++r; if (r >= screen_desktop_layout.rows) { - if (wrap) { + if (wrap) r = 0; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { ++r; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } } @@ -756,19 +751,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_NORTH: --r; if (r >= screen_desktop_layout.rows) { - if (wrap) { + if (wrap) r = screen_desktop_layout.rows - 1; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { --r; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } } @@ -1277,7 +1270,7 @@ void screen_set_root_cursor() { if (sn_app_starting()) XDefineCursor(ob_display, RootWindow(ob_display, ob_screen), - ob_cursor(OB_CURSOR_BUSY)); + ob_cursor(OB_CURSOR_BUSYPOINTER)); else XDefineCursor(ob_display, RootWindow(ob_display, ob_screen), ob_cursor(OB_CURSOR_POINTER));