Commit graph

163 commits

Author SHA1 Message Date
Bastien Nocera
5748c50f44 shell: Fix typo in variable name
ellapsed -> elapsed
2024-02-05 10:59:13 +00:00
Hari Rana
9e9f7c4633 warning: Port warning dialog to AdwMessageDialog 2023-11-21 02:58:14 +00:00
Marco Melorio
7b8a756a57 shell: Remove unused "sidebar-activated" signal from CcPanel 2023-09-22 11:45:02 +00:00
Marco Melorio
e413f3fd91 shell: Remove unneeded custom title-widget in main window
It was using the same title that was already defined in the
AdwNavigationPage of the sidebar.

Also remove some unneeded template bindings.
2023-09-22 11:45:02 +00:00
Marco Melorio
3d04632554 shell: Remove AdwNavigationView from the sidebar
We don't need it anymore now that we removed support for sidebar
subpages.
2023-09-22 11:45:02 +00:00
Marco Melorio
46021b152d shell: Remove sidebar subpages support from panels
They are now unused and they should not be used anymore in new panels.
2023-09-22 11:45:02 +00:00
Nelson Benítez León
3f3409cbc1 shell: restrict panel centering to specific cases
commit 02302c9b08 implemented vertical centering of
the panel being activated, but we should restrict
that to only happen when the activation is from the
Search view or from the set_active_panel_from_id()
CcShell iface, which covers the case of panel activated
from commandline parameter or from other panels, but
does not include activating panels manually by mouse
or keyboard which is the problematic case explained
in issue #2506

Closes #2506
2023-08-30 08:49:12 +00:00
Alice Mikhaylenko
1006f85223 window: Null check panel before embedding its sidebar widget 2023-08-28 08:19:45 +00:00
Alice Mikhaylenko
4e75534b2e Port sidebar widget to AdwNavigationView 2023-08-25 08:00:43 +00:00
Alice Mikhaylenko
4680f362f3 Port to AdwNavigationSplitView 2023-08-25 08:00:43 +00:00
Marco Melorio
31a91a221c shell: Disable privacy panels temporarely
It will be reimplemented in a single panel in later commits.
2023-08-03 08:42:10 +00:00
Felipe Borges
6b4b478402 applications: Fix crash when loading as last-used panel
Let's call update_headerbar_buttons only after the panel
has been loaded.

Fixes #2590
2023-08-02 12:51:22 +00:00
Nelson Benítez León
c2ef0f6e5e shell: prevent loading last-panel unconditionally on startup
We currently load the last-panel every time gnome-control-center
is launched, we do it from the CcWindow contructor method.

But we shouldn't do it when we are explicitly opening a different
panel by eg. using commandline parameter (gnome-control-center keyboard)
or from a DBus method, because otherwise we slow things down by
unnecesarily start launching last-panel just to be cancelled
moments later when the code starts processing the other panel.

We fix it by moving the code that loads last-panel to an idle
handler, so by the time it gets executed the other panel has
already started loading, and we can check for that with the
cc_panel_list_get_current_panel() function we add in this patch.

With this patch, I can feel that panels opened from a
gnome-shell search are presented faster.

Fixes issue #2569
2023-07-18 09:28:29 +00:00
Nelson Benítez León
68227b0dab shell: improve key nav between search entry and results list
Improve keyboard navigation with Up/Down arrow keys between
Search entry and the search results list.

Pressing Arrow Down in search entry will now move focus
to search list, and when pressing Arrow Up on the first
list result will move back focus to Search entry.
2023-06-06 13:01:23 +00:00
Nelson Benítez León
e95669d94d shell: avoid activating panel from an empty search
Avoid activating a panel when doing an empty search
i.e. clicking ENTER without having entered
any text in the search entry.

We should do nothing in this case, we fixed it by
detecting for this case when an activation happens
when there's still no search results view in place.

Closes #2119
2023-05-23 14:29:49 +01:00
Ondrej Kolin
a0ee96c8ff Set last-panel only for noncrashing panels 2023-05-05 09:32:55 +00:00
Maksym Hazevych
08c2e69851 Resolving suggestions 2023-03-29 14:26:55 +13:00
Maksym Hazevych
5b988a6943 Replace all occurrences of 'gtk_widget_hide'
Replace all occurrences of 'gtk_widget_hide(smth)' with
'gtk_widget_set_visible(smth, FALSE)'.
2023-03-29 14:26:55 +13:00
sunflowerskater
0dd780f1b7 cc-window: Don't trigger main search when pressing CTRL+S
CTRL+S is reserved for the "Save" action. HIG recommends to use CTRL+F to trigger search:
https://developer.gnome.org/hig/reference/keyboard.html?highlight=Find

Since CTRL+F already triggers main search, this commit just removes the CTRL+S shortcut.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2280
2023-01-06 21:19:02 -03:00
Felipe Borges
294156c0f9 Drop most uses of deprecated gtk_style_context_add/remove_class
GtkStyleContext will be deprecated in gtk 4.10.
https://docs.gtk.org/gtk4/class.StyleContext.html

This preserves code blocks where additional GtkStyleContext operations
were used, such as gtk_style_context_save/restore.
2023-01-05 18:55:51 +00:00
Mohammed Sadiq
3b121805ed log: Improve logging
The 'tracing' build option is no longer needed.  And the verbosity
of logs can be set by providing '-v' multiple times.
2022-12-01 11:44:17 +00:00
Benjamin Berg
cfc5fdb7c6 shell: Deactivate old panel before creating new one
We need to cancel internal operations before starting to create a new
panel, otherwise panels might be creating the same object for the cache
in parallel and this is not supported by the object cache.

The alternative to this would be to handle this inside the object
store to allow parallel creation of the same key.

Fixes: #1685
2022-06-20 03:18:30 +00:00
Georges Basile Stavracas Neto
acd59aec65 Rename app-id to org.gnome.Settings
Rename the app-id to org.gnome.Settings since this is what
we've been calling it for many years now. Adjust all files
that derive from the app-id, such as the desktop file, D-Bus
service file names, search providers, GSettings schemas, to
match that.

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/344
2022-01-21 13:08:50 +00:00
Georges Basile Stavracas Neto
45c7207cc3 window: Improve transition between panels
Moving the headerbar to the panels accentuated a pre-existing
problem: transitioning between panels is flickery because we
immediately remove the old panel, while the new panel fades
in.

Improve this transition by delaying the removal of the old
panel to after the stack transition finishes.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
b11ea45a95 window: Remove unnecessary calls to gtk_widget_show
Widgets are visible by default on GTK4, and we certainly don't
hide panels by default, so remove them.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
82c87578cd window: Install action to navigate main leaflet
This allows implementing the back button of panel titlebars
trivially, which is also done in this commit.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
4209c510da window: Remove panel headerbar widgetry
Now that panels handle their own titlebars, remove the corresponding
widgetry from CcWindow.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
bcd969f052 shell: Remove cc_shell_set_custom_titlebar
This is now unused.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
5017f3b21e shell: Remove cc_shell_embed_widget_in_header
It is now unused.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
4073c881d1 panel: Remove cc_panel_get_title_widget
This is now unused.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
48a9141bed panel: Add "title" property
Will be used by the panel titlebar to have the proper title.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
7476bef815 panel: Add 'folded' property
This property keeps track of whether the panel is folded
into the main leaflet. Will be used when moving headerbars
into the panel themselves.
2022-01-20 02:23:42 +00:00
Georges Basile Stavracas Neto
e225f8042f window: Remove unused struct field
We don't use panel_box anywhere.
2022-01-20 02:23:42 +00:00
Christopher Davis
617341591b cc-window: Use AdwLeaflet's navigation API
This should be preferred over `set_visible_child ()`
2022-01-07 13:43:50 +00:00
Christopher Davis
4e2706fc6f cc-window: Re-enable type-to-search
This was lost in the GTK4 port. This commit uses
GtkSearchBar's API to capture events.

See https://gnome.pages.gitlab.gnome.org/gtk/gtk4/method.SearchBar.set_key_capture_widget.html
2022-01-05 22:31:17 +00:00
Georges Basile Stavracas Neto
3f322e8553 shell: Allow panels set custom titlebars
This will be used by the Display panel to add a different
titlebar when confirming a new display configuration.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
30dcd1f973 window: Port to GTK4
- Inherit AdwApplicationWindow
 - GtkHeaderBar → AdwHeaderBar
 - Simplify the widget tree structure [1]
 - Drop custom key handler, use bindings instead

[1] It used to have a big messy chain of leaflets, headers,
and whatnot. Now it's simplified as:

 AdwLeaflet
 + ---------------- + --------------------------------- +
 |   AdwHeaderBar   |           AdwHeaderBar            |
 + ---------------- + --------------------------------- +
 |   GtkSearchBar   |                                   |
 + ---------------- +                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |             GtkStack              |
 |   CcPanelList    |                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |                                   |
 + ---------------- + --------------------------------- +
2021-12-14 22:34:21 -03:00
Guido Günther
a4ab41194b shell: Mirror the main leaflet's 'folded' property
This makes it simpler for panels to check whether g-c-c
is in folded state.
2021-09-25 19:05:28 +00:00
1pav
f89a48a980 window: Save application window state
Currently the window state (width, height, maximized) is not preserved
across application restarts.

These changes implement window state saving/restoring by leveraging the
GSettings API.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1293
2021-09-24 20:42:06 -03:00
Carlos Garnacho
7196e8aaea shell: Avoid handling map events from other windows
The CcWindow tries to unset the focus when first mapping the window.
However this pretty wide check intercepts mapping events from other
windows than the toplevel (e.g. subsurfaces, for popovers). This
causes the focus to move away from the popover, overriding its
modality.

Check that the event received is addressed to the CcWindow's
GDK window before unsetting the focus, so we don't mess with popover
focus.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1327
2021-04-21 20:54:06 +02:00
Adrien Plazas
fd60c313df Stop using HANDY_USE_UNSTABLE_API
It isn't needed anymore since libhandy 0.90.0.
2020-08-18 02:51:04 +00:00
Adrien Plazas
0c9b828d6f window: Use HdyLeaflet:folded
Replace the dropped fold enum property by the folded boolean one, and
directly bind booleans in UI files where possible.
2020-07-20 08:05:45 +02:00
Adrien Plazas
080e145e23 window: Use HdyHeaderGroup:decorate-all
Replace the dropped focus property by the decorate-all boolean one.
2020-07-20 08:04:28 +02:00
Adrien Plazas
611ffdbe7d window: Fix a typo in a comment 2020-07-03 10:07:58 +02:00
Georges Basile Stavracas Neto
a99ad542ae panel-list: Remove the Devices subsection
Same case of the Details subsection, it's now part of the
main list.
2020-01-06 15:15:30 +00:00
Georges Basile Stavracas Neto
f0d246a8b0 panel-list: Remove Details subsection
As per the latest mockups, the Details section is a toplevel
section, and not an actual subsection.

Remove all the code that implemented Details as a subsection,
and simply treat these panels as toplevel ones.
2020-01-06 15:15:30 +00:00
Robert Ancell
5dbbc20918 shell: Show the submenu icon hint for the applications panel
The panel swarms details/devices/privacy show this icon. Since the applications
panel is not made from sub-panels, this doesn't show. For consistency this shows
the icon so the transition isn't as jarring for the user.

Add a flat into the panel .desktop file to enable this - other panels might
require this in the future
2019-11-28 11:20:41 +13:00
Robert Ancell
19ccad96ae Whitespace fixes for g_autoptr coding style 2019-11-08 09:42:10 +13:00
Matthias Clasen
3860a2e2af shell: Add a new privacy section
This will be filled out in the next commits.

Probably doesn't build because it includes all the type funcs.
2019-11-07 14:19:23 +13:00
Felipe Borges
ad83235bf9 shell: Use a meson option to determine that we're in a sandbox 2019-10-14 20:25:39 +00:00