From b4cf922317b275f8d3db333f22f06d3b0180414f Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Fri, 25 May 2007 18:54:58 +0000 Subject: [PATCH] add focusLast option --- src/handlers.c | 21 ++++++++++++++++++++- src/main.c | 1 + src/obconf.glade | 48 ++++++++++++++++++++++++++++++++++++------------ src/strings.c | 15 ++++++++------- 4 files changed, 65 insertions(+), 20 deletions(-) diff --git a/src/handlers.c b/src/handlers.c index 23634c2..419cbd7 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -134,10 +134,12 @@ void setup_focus_mouse(GtkWidget *w) GtkWidget *delay_u = glade_xml_get_widget(glade, "focus_delay_label_units"); GtkWidget *raise = glade_xml_get_widget(glade, "focus_raise"); + GtkWidget *last = glade_xml_get_widget(glade, "focus_last"); gtk_widget_set_sensitive(delay, b); gtk_widget_set_sensitive(delay_l, b); gtk_widget_set_sensitive(delay_u, b); gtk_widget_set_sensitive(raise, b); + gtk_widget_set_sensitive(last, b); } mapping = FALSE; @@ -155,7 +157,15 @@ void setup_focus_raise(GtkWidget *w) { mapping = TRUE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), - tree_get_bool("focus/raiseOnFocus", FALSE)); + tree_get_bool("focus/raiseOnFocus", FALSE)); + mapping = FALSE; +} + +void setup_focus_last(GtkWidget *w) +{ + mapping = TRUE; + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), + tree_get_bool("focus/focusLast", FALSE)); mapping = FALSE; } @@ -741,10 +751,12 @@ void on_focus_mouse_toggled(GtkToggleButton *w, gpointer data) GtkWidget *delay_u = glade_xml_get_widget(glade, "focus_delay_label_units"); GtkWidget *raise = glade_xml_get_widget(glade, "focus_raise"); + GtkWidget *last = glade_xml_get_widget(glade, "focus_last"); gtk_widget_set_sensitive(delay, b); gtk_widget_set_sensitive(delay_l, b); gtk_widget_set_sensitive(delay_u, b); gtk_widget_set_sensitive(raise, b); + gtk_widget_set_sensitive(last, b); } } @@ -763,6 +775,13 @@ void on_focus_raise_toggled(GtkToggleButton *w, gpointer data) tree_set_bool("focus/raiseOnFocus", gtk_toggle_button_get_active(w)); } +void on_focus_last_toggled(GtkToggleButton *w, gpointer data) +{ + if (mapping) return; + + tree_set_bool("focus/focusLast", gtk_toggle_button_get_active(w)); +} + void on_focus_new_toggled(GtkToggleButton *w, gpointer data) { if (mapping) return; diff --git a/src/main.c b/src/main.c index cc0b024..11836fd 100644 --- a/src/main.c +++ b/src/main.c @@ -88,6 +88,7 @@ int main(int argc, char **argv) setup_dock_tab(); setup_focus_mouse(glade_xml_get_widget(glade, "focus_mouse")); setup_focus_raise(glade_xml_get_widget(glade, "focus_raise")); + setup_focus_last(glade_xml_get_widget(glade, "focus_raise")); setup_focus_delay(glade_xml_get_widget(glade, "focus_delay")); setup_focus_new(glade_xml_get_widget(glade, "focus_new")); setup_place_mouse(glade_xml_get_widget(glade, "place_mouse")); diff --git a/src/obconf.glade b/src/obconf.glade index 65a5860..beffdbf 100644 --- a/src/obconf.glade +++ b/src/obconf.glade @@ -271,7 +271,7 @@ True True - Windows retain a border when undecorated + _Windows retain a border when undecorated True GTK_RELIEF_NORMAL True @@ -379,7 +379,7 @@ True - Button _order: + _Button order: True False GTK_JUSTIFY_LEFT @@ -607,8 +607,8 @@ C - The close button True - Active window title: - False + _Active window title: + True False GTK_JUSTIFY_LEFT False @@ -617,6 +617,7 @@ C - The close button 0.5 0 0 + font_active PANGO_ELLIPSIZE_NONE -1 False @@ -635,8 +636,8 @@ C - The close button True - Inactive window title: - False + _Inactive window title: + True False GTK_JUSTIFY_LEFT False @@ -645,6 +646,7 @@ C - The close button 0.5 0 0 + font_inactive PANGO_ELLIPSIZE_NONE -1 False @@ -663,8 +665,8 @@ C - The close button True - Menu header: - False + Menu _header: + True False GTK_JUSTIFY_LEFT False @@ -673,6 +675,7 @@ C - The close button 0.5 0 0 + font_menu_header PANGO_ELLIPSIZE_NONE -1 False @@ -691,8 +694,8 @@ C - The close button True - Menu Item: - False + _Menu Item: + True False GTK_JUSTIFY_LEFT False @@ -701,6 +704,7 @@ C - The close button 0.5 0 0 + font_menu_item PANGO_ELLIPSIZE_NONE -1 False @@ -719,8 +723,8 @@ C - The close button True - On-screen display: - False + _On-screen display: + True False GTK_JUSTIFY_LEFT False @@ -729,6 +733,7 @@ C - The close button 0.5 0 0 + font_display PANGO_ELLIPSIZE_NONE -1 False @@ -1049,6 +1054,25 @@ C - The close button True + + + + True + True + _Give focus to the last used window, instead of under the mouse + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + 0 diff --git a/src/strings.c b/src/strings.c index a0e5455..4412a62 100644 --- a/src/strings.c +++ b/src/strings.c @@ -10,10 +10,10 @@ gchar *s = N_(" "); gchar *s = N_("Theme"); gchar *s = N_("Windows"); gchar *s = N_(" "); -gchar *s = N_("Windows retain a border when undecorated"); +gchar *s = N_("_Windows retain a border when undecorated"); gchar *s = N_("Window Titles"); gchar *s = N_(" "); -gchar *s = N_("Button _order:"); +gchar *s = N_("_Button order:"); gchar *s = N_("N - The window's icon\n" "D - The all-desktops (sticky) button\n" "S - The shade (roll up) button\n" @@ -23,11 +23,11 @@ gchar *s = N_("N - The window's icon\n" "C - The close button"); gchar *s = N_("Fonts"); gchar *s = N_(" "); -gchar *s = N_("Active window title: "); -gchar *s = N_("Inactive window title: "); -gchar *s = N_("Menu header: "); -gchar *s = N_("Menu Item: "); -gchar *s = N_("On-screen display: "); +gchar *s = N_("_Active window title: "); +gchar *s = N_("_Inactive window title: "); +gchar *s = N_("Menu _header: "); +gchar *s = N_("_Menu Item: "); +gchar *s = N_("_On-screen display: "); gchar *s = N_("Appearance"); gchar *s = N_("Focusing Windows"); gchar *s = N_(" "); @@ -36,6 +36,7 @@ gchar *s = N_(" "); gchar *s = N_("_Raise windows when the mouse pointer moves over them"); gchar *s = N_("_Delay before focusing and raising windows:"); gchar *s = N_("ms"); +gchar *s = N_("_Give focus to the last used window, instead of under the mouse"); gchar *s = N_("Focus _new windows when they appear"); gchar *s = N_("Placing Windows"); gchar *s = N_(" "); -- 2.39.2