diff options
| author | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2013-05-06 19:04:38 +0800 | 
|---|---|---|
| committer | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2013-05-06 19:04:38 +0800 | 
| commit | 0a1f795c69afbeaf1a67180eaf88b06f50bef4e8 (patch) | |
| tree | 54a74676833ae2689271965c69a48b8d9596a5a5 /devel/dconf/files/patch-editor_dconf-editor.vala | |
| parent | 0aaa2a884f269e3b7926fa78176e3dc4c634a1b9 (diff) | |
| download | marcuscom-ports-0a1f795c69afbeaf1a67180eaf88b06f50bef4e8.tar.gz marcuscom-ports-0a1f795c69afbeaf1a67180eaf88b06f50bef4e8.tar.zst marcuscom-ports-0a1f795c69afbeaf1a67180eaf88b06f50bef4e8.zip | |
Part two of the GNOME 3.6 update.
Submitted by:	Gustau Perez
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@18422 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'devel/dconf/files/patch-editor_dconf-editor.vala')
| -rw-r--r-- | devel/dconf/files/patch-editor_dconf-editor.vala | 157 | 
1 files changed, 157 insertions, 0 deletions
| diff --git a/devel/dconf/files/patch-editor_dconf-editor.vala b/devel/dconf/files/patch-editor_dconf-editor.vala new file mode 100644 index 000000000..3c03fa220 --- /dev/null +++ b/devel/dconf/files/patch-editor_dconf-editor.vala @@ -0,0 +1,157 @@ +--- editor/dconf-editor.vala.orig	2013-05-01 21:48:10.000000000 +0000 ++++ editor/dconf-editor.vala	2013-05-01 21:50:26.000000000 +0000 +@@ -5,6 +5,10 @@ +     private Settings settings; +     private Gtk.Builder ui; +     private Gtk.ApplicationWindow window; ++    private int window_width = 0; ++    private int window_height = 0; ++    private bool window_is_maximized = false; ++    private bool window_is_fullscreen = false; +     private Gtk.TreeView dir_tree_view; +     private Gtk.TreeView key_tree_view; +     private Gtk.Grid key_info_grid; +@@ -72,8 +76,10 @@ +         } +         set_app_menu((MenuModel)menu_ui.get_object("menu")); +  +-        window.set_default_size (settings.get_int ("width"), settings.get_int ("height")); +-        if (settings.get_boolean ("maximized")) ++        window.set_default_size (settings.get_int ("window-width"), settings.get_int ("window-height")); ++        if (settings.get_boolean ("window-is-fullscreen")) ++            window.fullscreen (); ++        else if (settings.get_boolean ("window-is-maximized")) +             window.maximize (); +  +         dir_tree_view = new DConfDirView(); +@@ -124,6 +130,15 @@ +         window.present(); +     } +  ++    protected override void shutdown () ++    { ++        base.shutdown(); ++        settings.set_int ("window-width", window_width); ++        settings.set_int ("window-height", window_height); ++        settings.set_boolean ("window-is-maximized", window_is_maximized); ++        settings.set_boolean ("window-is-fullscreen", window_is_fullscreen); ++    } ++ +     private void dir_selected_cb() +     { +         KeyModel? key_model = null; +@@ -201,11 +216,16 @@ +         { +             if (selected_key.schema != null) +             { ++                var gettext_domain = selected_key.schema.gettext_domain; +                 schema_name = selected_key.schema.schema.id; +                 if (selected_key.schema.summary != null) +                     summary = selected_key.schema.summary; ++                if (gettext_domain != null && summary != "") ++                    summary = dgettext(gettext_domain, summary); +                 if (selected_key.schema.description != null) +                     description = selected_key.schema.description; ++                if (gettext_domain != null && description != "") ++                    description = dgettext(gettext_domain, description); +                 type = key_to_description(selected_key); +                 default_value = selected_key.schema.default_value.print(false); +             } +@@ -236,10 +256,10 @@ +  +     private bool main_window_configure_event_cb (Gtk.Widget widget, Gdk.EventConfigure event) +     { +-        if (!settings.get_boolean ("maximized")) ++        if (!window_is_maximized && !window_is_fullscreen) +         { +-            settings.set_int ("width", event.width); +-            settings.set_int ("height", event.height); ++            window_width = event.width; ++            window_height = event.height; +         } +  +         return false; +@@ -248,10 +268,9 @@ +     private bool main_window_window_state_event_cb (Gtk.Widget widget, Gdk.EventWindowState event) +     { +         if ((event.changed_mask & Gdk.WindowState.MAXIMIZED) != 0) +-        { +-            var is_maximized = (event.new_window_state & Gdk.WindowState.MAXIMIZED) != 0; +-            settings.set_boolean ("maximized", is_maximized); +-        } ++            window_is_maximized = (event.new_window_state & Gdk.WindowState.MAXIMIZED) != 0; ++        if ((event.changed_mask & Gdk.WindowState.FULLSCREEN) != 0) ++            window_is_fullscreen = (event.new_window_state & Gdk.WindowState.FULLSCREEN) != 0; +  +         return false; +     } +@@ -266,6 +285,7 @@ +     { +         search_label.set_text(""); +  ++        /* Get the current position in the tree */ +         Gtk.TreeIter iter; +         var key_iter = Gtk.TreeIter(); +         var have_key_iter = false; +@@ -283,17 +303,31 @@ +         else if (!model.get_iter_first(out iter)) +             return; +  ++        var on_first_directory = true; +         do +         { ++            /* Select next directory that matches */ +             var dir = model.get_directory(iter); +             if (!have_key_iter) ++            { +                 have_key_iter = dir.key_model.get_iter_first(out key_iter); ++                if (!on_first_directory && dir.name.index_of(search_entry.text) >= 0) ++                { ++                    dir_tree_view.expand_to_path(model.get_path(iter)); ++                    dir_tree_view.get_selection().select_iter(iter); ++                    dir_tree_view.scroll_to_cell(model.get_path(iter), null, false, 0, 0); ++                    return; ++                } ++            } ++            on_first_directory = false; ++ ++            /* Select next key that matches */ +             if (have_key_iter) +             { +                 do +                 { +                     var key = dir.key_model.get_key(key_iter); +-                    if (key.name.index_of (search_entry.text) >= 0) ++                    if (key_matches(key, search_entry.text)) +                     { +                         dir_tree_view.expand_to_path(model.get_path(iter)); +                         dir_tree_view.get_selection().select_iter(iter); +@@ -310,6 +344,28 @@ +         search_label.set_text(_("Not found")); +     } +  ++    private bool key_matches (Key key, string text) ++    { ++        /* Check key name */ ++        if (key.name.index_of(text) >= 0) ++            return true; ++ ++        /* Check key schema (description) */ ++        if (key.schema != null) ++        { ++            if (key.schema.summary != null && key.schema.summary.index_of(text) >= 0) ++                return true; ++            if (key.schema.description != null && key.schema.description.index_of(text) >= 0) ++                return true; ++        } ++ ++        /* Check key value */ ++        if (key.value.is_of_type(VariantType.STRING) && key.value.get_string().index_of(text) >= 0) ++            return true; ++ ++        return false; ++    } ++ +     private bool get_next_iter(ref Gtk.TreeIter iter) +     { +         /* Search children next */ | 
