diff options
-rw-r--r-- | defaults/defaults | 1 | ||||
-rw-r--r-- | po/xfwm4.pot | 133 | ||||
-rw-r--r-- | settings-dialogs/tweaks-settings.c | 6 | ||||
-rw-r--r-- | settings-dialogs/xfwm4-tweaks-dialog.glade | 17 | ||||
-rw-r--r-- | src/client.c | 24 | ||||
-rw-r--r-- | src/settings.c | 8 | ||||
-rw-r--r-- | src/settings.h | 1 |
7 files changed, 131 insertions, 59 deletions
diff --git a/defaults/defaults b/defaults/defaults index 586813fec..caa6ab031 100644 --- a/defaults/defaults +++ b/defaults/defaults @@ -30,6 +30,7 @@ raise_delay=250 raise_on_click=true raise_on_focus=false raise_with_any_button=true +repeat_urgent_blink=true resize_opacity=100 restore_on_move=true scroll_workspaces=true diff --git a/po/xfwm4.pot b/po/xfwm4.pot index 46eff11e1..7f7726102 100644 --- a/po/xfwm4.pot +++ b/po/xfwm4.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-09-29 23:05+0100\n" +"POT-Creation-Date: 2008-10-07 20:36+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,12 +16,16 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../helper-dialog/helper-dialog.c:79 +#: ../helper-dialog/helper-dialog.c:84 msgid "" "This window might be busy and is not responding.\n" "Do you want to terminate the application?" msgstr "" +#: ../helper-dialog/helper-dialog.c:89 +msgid "Warning" +msgstr "" + #. TRANSLATORS: "(on %s)" is like "running on" the name of the other host #: ../src/client.c:182 #, c-format @@ -180,7 +184,7 @@ msgid "Advanced window manager settings" msgstr "" #: ../settings-dialogs/xfce-wmtweaks-settings.desktop.in.h:2 -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:30 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:31 msgid "Window Manager Tweaks" msgstr "" @@ -189,12 +193,12 @@ msgid "Xfce 4 Window Manager Tweaks" msgstr "" #: ../settings-dialogs/xfce-workspaces-settings.desktop.in.h:1 -#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:2 +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:5 msgid "Set number and names of workspaces" msgstr "" #: ../settings-dialogs/xfce-workspaces-settings.desktop.in.h:2 -#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:3 +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:6 msgid "Workspaces" msgstr "" @@ -487,31 +491,31 @@ msgid "Shortcut" msgstr "" #: ../settings-dialogs/xfwm4-settings.c:577 -#: ../settings-dialogs/workspace-settings.c:326 +#: ../settings-dialogs/workspace-settings.c:369 msgid "Settings manager socket" msgstr "" #: ../settings-dialogs/xfwm4-settings.c:577 -#: ../settings-dialogs/tweaks-settings.c:388 -#: ../settings-dialogs/workspace-settings.c:326 +#: ../settings-dialogs/tweaks-settings.c:396 +#: ../settings-dialogs/workspace-settings.c:369 msgid "SOCKET ID" msgstr "" #: ../settings-dialogs/xfwm4-settings.c:578 -#: ../settings-dialogs/tweaks-settings.c:389 -#: ../settings-dialogs/workspace-settings.c:327 +#: ../settings-dialogs/tweaks-settings.c:397 +#: ../settings-dialogs/workspace-settings.c:370 msgid "Version information" msgstr "" #: ../settings-dialogs/xfwm4-settings.c:596 -#: ../settings-dialogs/tweaks-settings.c:406 -#: ../settings-dialogs/workspace-settings.c:344 +#: ../settings-dialogs/tweaks-settings.c:414 +#: ../settings-dialogs/workspace-settings.c:387 msgid "." msgstr "" #: ../settings-dialogs/xfwm4-settings.c:600 -#: ../settings-dialogs/tweaks-settings.c:410 -#: ../settings-dialogs/workspace-settings.c:348 +#: ../settings-dialogs/tweaks-settings.c:418 +#: ../settings-dialogs/workspace-settings.c:391 #, c-format msgid "" "%s: %s\n" @@ -576,151 +580,172 @@ msgid "Honor _standard ICCCM focus hint" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:16 -msgid "Key used to _grab and move windows:" +msgid "Keep urgent windows blinking" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:17 -msgid "Opaci_ty of window decorations:" +msgid "Key used to _grab and move windows:" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:18 -msgid "Opacity of _inactive windows:" +msgid "Opaci_ty of window decorations:" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:19 -msgid "Opacity of popup window_s:" +msgid "Opacity of _inactive windows:" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:20 -msgid "Opacity of windows during _move:" +msgid "Opacity of popup window_s:" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:21 -msgid "Opacity of windows during resi_ze:" +msgid "Opacity of windows during _move:" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:22 -msgid "Restore original _size of maximized windows when moving" +msgid "Opacity of windows during resi_ze:" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:23 -msgid "Show shadows under _dock windows" +msgid "Restore original _size of maximized windows when moving" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:24 -msgid "Show shadows under _regular windows" +msgid "Show shadows under _dock windows" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:25 -msgid "Show shadows under pop_up windows" +msgid "Show shadows under _regular windows" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:26 -msgid "Switch to win_dow's workspace" +msgid "Show shadows under pop_up windows" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:27 -msgid "Under the mouse _pointer" +msgid "Switch to win_dow's workspace" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:28 -msgid "Use _edge resistance instead of window snapping" +msgid "Under the mouse _pointer" msgstr "" #: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:29 +msgid "Use _edge resistance instead of window snapping" +msgstr "" + +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:30 msgid "When a window raises itself:" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:31 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:32 msgid "Wrap workspaces depending on the actual desktop _layout" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:32 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:33 msgid "Wrap workspaces when the _first or the last workspace is reached" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:33 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:34 msgid "_Accessibility" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:34 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:35 msgid "_Bring window on current workspace" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:35 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:36 +msgid "_Draw frame around selected windows while cycling" +msgstr "" + +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:37 msgid "_Enable display compositing" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:36 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:38 #: ../settings-dialogs/xfwm4-dialog.glade.h:49 msgid "_Focus" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:37 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:39 msgid "_Include hidden (i.e. iconified) windows" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:38 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:40 msgid "_Minimum size of windows to trigger smart placement:" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:39 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:41 msgid "_Mouse wheel over desktop switches workspaces" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:40 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:42 msgid "_Placement" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:41 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:43 msgid "_Raise windows when any mouse button is pressed" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:42 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:44 msgid "" "_Remember and recall previous workspace\n" "when switching via keyboard shortcuts" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:44 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:46 msgid "" "_Skip windows that have \"skip pager\"\n" "or \"skip taskbar\" properties set" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:46 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:48 msgid "_Workspaces" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:47 -#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:7 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:49 +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:10 #: ../settings-dialogs/xfwm4-dialog.glade.h:52 msgid "gtk-close" msgstr "" -#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:48 -#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:8 +#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:50 +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:11 #: ../settings-dialogs/xfwm4-dialog.glade.h:53 msgid "gtk-help" msgstr "" #: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:1 +msgid "<b>Margins</b>" +msgstr "" + +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:2 +msgid "<b>Workspaces</b>" +msgstr "" + +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:3 msgid "Change Workspace Name" msgstr "" #: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:4 +msgid "" +"Margins are areas on the edges of the screen where no window will be placed" +msgstr "" + +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:7 msgid "_Name:" msgstr "" -#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:5 +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:8 msgid "_Number of workspaces:" msgstr "" -#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:6 +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:9 msgid "gtk-cancel" msgstr "" -#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:9 +#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:12 msgid "gtk-save" msgstr "" @@ -728,23 +753,23 @@ msgstr "" msgid "None" msgstr "" -#: ../settings-dialogs/tweaks-settings.c:388 +#: ../settings-dialogs/tweaks-settings.c:396 msgid "Session manager socket" msgstr "" -#: ../settings-dialogs/workspace-settings.c:70 -#: ../settings-dialogs/workspace-settings.c:85 -#: ../settings-dialogs/workspace-settings.c:147 +#: ../settings-dialogs/workspace-settings.c:72 +#: ../settings-dialogs/workspace-settings.c:87 +#: ../settings-dialogs/workspace-settings.c:148 #, c-format msgid "Workspace %d" msgstr "" -#: ../settings-dialogs/workspace-settings.c:133 +#: ../settings-dialogs/workspace-settings.c:134 #, c-format msgid "Change the name of workspace %d" msgstr "" -#: ../settings-dialogs/workspace-settings.c:274 +#: ../settings-dialogs/workspace-settings.c:275 msgid "Workspace Name" msgstr "" diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c index c43a689e3..92162ac2b 100644 --- a/settings-dialogs/tweaks-settings.c +++ b/settings-dialogs/tweaks-settings.c @@ -150,6 +150,7 @@ wm_tweaks_dialog_configure_widgets (GladeXML *gxml) /* Focus tab */ GtkWidget *prevent_focus_stealing_check = glade_xml_get_widget (gxml, "prevent_focus_stealing_check"); GtkWidget *focus_hint_check = glade_xml_get_widget (gxml, "focus_hint_check"); + GtkWidget *repeat_urgent_blink = glade_xml_get_widget (gxml, "repeat_urgent_blink"); GtkWidget *activate_action_bring_option = glade_xml_get_widget (gxml, "activate_action_bring_option"); GtkWidget *activate_action_switch_option = glade_xml_get_widget (gxml, "activate_action_switch_option"); @@ -168,7 +169,6 @@ wm_tweaks_dialog_configure_widgets (GladeXML *gxml) GtkWidget *wrap_layout_check = glade_xml_get_widget (gxml, "wrap_layout_check"); GtkWidget *wrap_cycle_check = glade_xml_get_widget (gxml, "wrap_cycle_check"); - /* Placement tab */ GtkWidget *placement_ratio_scale = (GtkWidget *)gtk_range_get_adjustment (GTK_RANGE (glade_xml_get_widget (gxml, "placement_ratio_scale"))); GtkWidget *placement_center_option = glade_xml_get_widget (gxml, "placement_center_option"); @@ -294,6 +294,10 @@ wm_tweaks_dialog_configure_widgets (GladeXML *gxml) "/general/focus_hint", G_TYPE_BOOLEAN, (GObject *)focus_hint_check, "active"); + xfconf_g_property_bind (xfwm4_channel, + "/general/repeat_urgent_blink", + G_TYPE_BOOLEAN, + (GObject *)repeat_urgent_blink, "active"); /* Accessibility tab */ xfconf_g_property_bind (xfwm4_channel, diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade index a9828783c..8d3987947 100644 --- a/settings-dialogs/xfwm4-tweaks-dialog.glade +++ b/settings-dialogs/xfwm4-tweaks-dialog.glade @@ -132,6 +132,21 @@ or "skip taskbar" properties set</property> </packing> </child> <child> + <widget class="GtkCheckButton" id="repeat_urgent_blink"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Keep urgent windows blinking</property> + <property name="use_underline">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> <widget class="GtkVBox" id="prevent_focus_stealing_box"> <property name="visible">True</property> <property name="sensitive">True</property> @@ -205,7 +220,7 @@ or "skip taskbar" properties set</property> <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">2</property> + <property name="position">3</property> </packing> </child> </widget> diff --git a/src/client.c b/src/client.c index 5a43eaecf..ad081d434 100644 --- a/src/client.c +++ b/src/client.c @@ -344,10 +344,14 @@ static gboolean urgent_cb (gpointer data) { Client *c; + ScreenInfo *screen_info; TRACE ("entering urgent_cb, iteration %i", c->blink_iterations); c = (Client *) data; + g_return_val_if_fail (c != NULL, FALSE); + screen_info = c->screen_info; + if (c != clientGetFocus ()) { c->blink_iterations++; @@ -358,8 +362,24 @@ urgent_cb (gpointer data) } else if (c->blink_iterations > (8 * MAX_BLINK_ITERATIONS)) { - c->blink_iterations = 0; - } + /* + * A bit of hack. Instead of removing the callback + * if "repeat_urgent_blink" is unset, we simply reset + * the number of iterations at a higher value so that + * it does not blink. + * This way, if the user changes the setting later on, + * we don't have to go through all windows to reinstall + * the callbacks... + */ + if (!screen_info->params->repeat_urgent_blink) + { + c->blink_iterations = 2 * MAX_BLINK_ITERATIONS; + } + else + { + c->blink_iterations = 0; + } + } } else if (c->blink_iterations) { diff --git a/src/settings.c b/src/settings.c index bacaf3c37..0e8b30215 100644 --- a/src/settings.c +++ b/src/settings.c @@ -692,6 +692,7 @@ loadSettings (ScreenInfo *screen_info) {"raise_on_click", NULL, G_TYPE_BOOLEAN, TRUE}, {"raise_on_focus", NULL, G_TYPE_BOOLEAN, TRUE}, {"raise_with_any_button", NULL, G_TYPE_BOOLEAN, TRUE}, + {"repeat_urgent_blink", NULL, G_TYPE_BOOLEAN, TRUE}, {"resize_opacity", NULL, G_TYPE_INT, TRUE}, {"restore_on_move", NULL, G_TYPE_BOOLEAN, TRUE}, {"scroll_workspaces", NULL, G_TYPE_BOOLEAN, TRUE}, @@ -839,6 +840,8 @@ loadSettings (ScreenInfo *screen_info) getBoolValue ("raise_on_click", rc); screen_info->params->raise_with_any_button = getBoolValue ("raise_with_any_button", rc); + screen_info->params->repeat_urgent_blink = + getBoolValue ("repeat_urgent_blink", rc); screen_info->params->restore_on_move = getBoolValue ("restore_on_move", rc); screen_info->params->frame_opacity = @@ -1220,7 +1223,6 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_ if (!strcmp (name, "box_move")) { screen_info->params->box_move = g_value_get_boolean (value); - } else if (!strcmp (name, "box_resize")) { @@ -1244,6 +1246,10 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_ screen_info->params->raise_on_click = g_value_get_boolean (value); update_grabs (screen_info); } + else if (!strcmp (name, "repeat_urgent_blink")) + { + screen_info->params->repeat_urgent_blink = g_value_get_boolean (value); + } else if (!strcmp (name, "snap_to_border")) { screen_info->params->snap_to_border = g_value_get_boolean (value); diff --git a/src/settings.h b/src/settings.h index 5e68eba78..94071f348 100644 --- a/src/settings.h +++ b/src/settings.h @@ -204,6 +204,7 @@ struct _XfwmParams gboolean raise_on_click; gboolean raise_on_focus; gboolean raise_with_any_button; + gboolean repeat_urgent_blink; gboolean scroll_workspaces; gboolean show_app_icon; gboolean show_dock_shadow; |