Commit graph

450 commits

Author SHA1 Message Date
Rui Matos
6c4eb9fc86 display: Fix the two output UI to start with the current configuration
gtk_stack_set_visible_child_name() doesn't actually make a child
visible if the child widget isn't visible already which means we'd
always start in the first ("join") stack page even if the currently
applied configuration is one of the others.

https://bugzilla.gnome.org/show_bug.cgi?id=786767
2017-08-25 15:17:12 +02:00
Rui Matos
57a82a89cd display: Cancel pending changes on Escape key press 2017-08-23 18:32:28 +02:00
Rui Matos
566d2cf6ac display: Add mnemonics to Cancel and Apply buttons 2017-08-23 18:32:28 +02:00
Rui Matos
a8071322a7 display: Move scale row above refresh rate
It's a bit closer to the mockups, in spirit at least.
2017-08-23 18:32:28 +02:00
Rui Matos
566b0c137c display: Make rows created for a new current output be the same size
We need the rows size group to exist when creating output UIs.
2017-08-23 18:32:27 +02:00
Rui Matos
0a0ac31b51 display: Handle lid being closed a bit better
If the lid is closed we shouldn't allow the builtin display to be
configured.
2017-08-23 18:32:27 +02:00
Rui Matos
088f35617c display: Make scale row be the same height as others 2017-08-23 18:32:27 +02:00
Rui Matos
e5a1afee9c display: Fix a crash when opening the panel with the lid closed
The configuration manager might not be ready yet when we're called
from the lid state monitor handler. Don't do anything in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=786080
2017-08-22 19:26:39 +02:00
Rui Matos
ef0cbf45f3 display: Make arrangement and scale rows non-activatable 2017-08-22 19:21:41 +02:00
Rui Matos
47919bcfb1 display: Fix underscanning switch [de]activating the output instead 2017-08-22 19:21:41 +02:00
Rui Matos
7c7c0b75d5 display: Switch to a toggle buttons design for scale
The slider design wasn't fit for this since we allow only a finite set
of scales.
2017-08-22 19:21:41 +02:00
Rui Matos
c50062a48b display: Update the two display mode switcher design
This makes us follow the updated design mockups more closely.
2017-08-22 19:21:41 +02:00
Rui Matos
90cf23a70a display: Redraw the arrangement area widget when outputs change
This ensures the arrangement area always reflects the current
changes.
2017-08-22 19:21:41 +02:00
Rui Matos
e4dc2995a3 display: Add a signal for scale changes
This will allows other bits of the UI to monitor scale changes.
2017-08-22 19:21:41 +02:00
Rui Matos
52d61d52b2 display: Force content to always have a fixed minimum width
This makes switching between configurations and/or active monitor look
a bit more polished.
2017-08-21 14:47:17 +02:00
Rui Matos
d0ca7e0abc display/config-manager-dbus: Clear the current state on error
This ensures that the higher levels notice that there was an error and
show the appropriate UI instead of showing the previous state.
2017-08-21 14:47:17 +02:00
Rui Matos
93a3bbe0fc display: Remove a few no longer needed variables
These are not needed since last commit.
2017-08-21 14:47:17 +02:00
Jonas Ådahl
ff30244c5c panels/display: Remove support for old config system
As mutter now has removed the legacy monitor config system and the
associated property on org.gnome.Mutter.DisplayConfig, also remove the
support from gnome-control-center.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
2017-08-21 12:33:38 +08:00
Rui Matos
c0f686bb0f display: Re-design the panel
This implements most of the new Display panel re-design by Allan
Day.

Left out for now is brightness setting which still is in the
Power panel because the plumbing layers don't yet associate backlights
with outputs.

Also left out is the presentation mode and trimming of options due to
hardware constraints since we don't have a mutter implementation for
those yet.

https://bugzilla.gnome.org/show_bug.cgi?id=785949
2017-08-09 19:27:08 +02:00
Rui Matos
353236b576 display-config-dbus: Consider interlaced flag for similar modes
Otherwise we could end up picking an interlaced mode when we want a
non-interlaced one or vice-versa since they might have equal
refresh rates.

https://bugzilla.gnome.org/show_bug.cgi?id=785949
2017-08-09 19:27:08 +02:00
Rui Matos
7c89e30a47 display: Add some signals to the new configuration API
These will be useful to keep track of changes across different places
in the new UI.

https://bugzilla.gnome.org/show_bug.cgi?id=785949
2017-08-09 19:27:08 +02:00
Rui Matos
9b0cf3391c display: Refactor night light widget instantiation
We'll need multiple instances of this widget in the new panel
design. This makes it possible.

https://bugzilla.gnome.org/show_bug.cgi?id=785949
2017-08-09 19:27:08 +02:00
Jonas Ådahl
c37ce6fcb4 display: Add is_interlaced() D-Bus implementation
Whether a mode is interlaced or not is now exported by adding a
'is-interlaced' (b) value to the mode properties variant. Implement the
is_interlaced() vfunc using this information.
2017-07-14 18:32:55 +02:00
Jonas Ådahl
252fd31762 display: Update to the new D-Bus API mode format
The mode format communicated via the new D-Bus API changed to
specifying modes using a per monitor unique mode ID string. The uint
'flags' was also changed to more flexible a{sv} 'properties' structure.
2017-07-14 18:32:55 +02:00
Marco Trevisan (Treviño)
cca9663d87 display: Adapt to new Mutter interface with scaling per mode
New Mutter GetCurrentState now provides a list of available scales, we
need to use these values in order to define an UI that shows them all.
2017-07-14 18:32:54 +02:00
Rui Matos
8bf07fc414 display: Handle monitor scales on the arrange displays dialog
We need to simply scale monitors' width and height where appropriate
and the API allows us.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
4b30ecb758 display: Add a slider to select a monitor's scale when available
Mutter's new display configuration API allows configurable per-monitor
scales within a finite set determined by mutter. We expose the
available values in a simple slider widget for each monitor.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
39c6db2772 display: Don't do automatic layout adjustments with the new API
The new API checks with mutter every time update_apply_button() is
called and mutter is very strict about this so it already does these
adjustments internally.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
e1d5885ad4 display: Unset primary from a turned off monitor
When setting the primary monitor off we were setting all other
monitors as non-primary which is clearly wrong. It only worked
correctly because the backend code in GnomeRR would implicitly
select a primary for us.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
d83d613103 display: Choose config manager implementation according to DBus API
Use mutter's new display configuration API if it's available or
fallback to the old API via GnomeRR. The new API requires a new way to
identify outputs so we also need to use an alternative monitor labeler
API.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
8a175d1106 display: Provide an implementation for mutter's new display config API
This adapts as much as possible mutter's new display config API to the
current display panel's expectations. In particular we keep the
concept of logical monitors hidden from the panel. They will later be
exposed when we re-design the panel to make full use of the new API.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
71aef22ae0 display: Port the display panel to the new abstract API
This removes the direct dependency on GnomeRR while keeping the
existing functionality.

All the tiled monitor special casing was removed since the new API
doesn't expose tiled monitors in the first place.

A check for virtual size limits was removed but it wasn't being
enforced anyway.

We also introduce a blank error state for when the backend API isn't
available.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
f82bd7d7db display: Provide a GnomeRR based implementation for the new api
This allows us to keep the panel working with GnomeRR while the new
mutter api develops.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Rui Matos
918fd9a333 display: Introduce an abstract API for display configuration
This will allow us to switch the display panel away from using the
GnomeRR api directly in order to gracefully move to a new DBus display
configuration API to be provided by mutter while still keeping the
existing functionality on top of the GnomeRR api while the new one
is developed.

https://bugzilla.gnome.org/show_bug.cgi?id=782785
2017-05-18 18:57:26 +02:00
Emmanuele Bassi
e7d0716d14 display: Load appropriate assets for the night light panel
We hard-code a 16x16 asset for sunrise and sunset icons, which makes
them look blurry at higher scaling factors.

Let's look in the icon theme to see if there's an icon for sunrise and
sunset; if not, we can still use the assets we ship, but we also attempt
to load them from different resource paths, depending on the scale
factor.

We will need to update the assets to include a 32x32 rendering of the
sunrise and sunset icons.

https://bugzilla.gnome.org/show_bug.cgi?id=781029
2017-04-07 14:38:10 +01:00
Richard Hughes
9725efd3e4 display: Tweak night light dialog UI to match latest mockups 2017-02-16 19:56:51 +00:00
Jeremy Bicha
86f131a1cb display: Really fix typo in "Tomorrow"
Spelled correctly in the commit message, but not in the code itself.
Yay! :(

https://bugzilla.gnome.org/show_bug.cgi?id=778513
2017-02-15 11:58:54 +01:00
Richard Hughes
2f1af82a4e display: Only show the sunset/sunrise icons when not manually specified 2017-02-14 11:20:08 +00:00
Jeremy Bicha
a916552933 display: Add Night Light keywords to .desktop
https://bugzilla.gnome.org/show_bug.cgi?id=778461
2017-02-13 05:26:37 -05:00
Bastien Nocera
d2fc99a6d7 display: Fix typo in "Tomorrow"
Re-spotted by Anders Jonsson <anders.jonsson@norsjovallen.se>. First
spotted on IRC, but not fixed.

https://bugzilla.gnome.org/show_bug.cgi?id=778513
2017-02-12 16:14:47 +01:00
Richard Hughes
2d176bee27 display: Fix up padding in new Night Light dialog 2017-02-10 17:05:37 +00:00
Richard Hughes
fdbd788b96 display: Rename 'Natural Light Filter' to 'Night Light' 2017-02-10 16:32:24 +00:00
Richard Hughes
8c93ec478f display: Update the disabled banner when the interface changes
GNOME Shell is setting this D-Bus property from the status menu when the
natural light filter is disabled.
2017-02-10 13:42:48 +00:00
Richard Hughes
090316deea display: Update the enabled switch when the setting changes
GNOME Shell is setting this settings key from the status menu when the natural
light filter is turned off.
2017-02-10 13:42:48 +00:00
Jeremy Bicha
c08bdf04a5 display: Fix typo in translator message
https://bugzilla.gnome.org/show_bug.cgi?id=778443
2017-02-10 07:37:49 -05:00
Richard Hughes
ef4dfe8896 display: Add natural light UI to the display panel
https://bugzilla.gnome.org/show_bug.cgi?id=778326
2017-02-10 09:07:24 +00:00
Bastien Nocera
3f0510cac8 build: Better libm checks
Use AC_CHECK_LIBM instead of AC_CHECK_LIB(m,...
and use $(LIBM) instead of hardcoding "-lm" in Makefiles.
2017-02-08 19:21:53 +01:00
Rui Matos
ae113c1522 display: Ensure the preselected resolution matches the current mode
We need to check the interlaced flag too when preselecting the current
resolution in the combo box since we now have separate entries for
interlaced and regular resolutions of the same size.

https://bugzilla.gnome.org/show_bug.cgi?id=772708
2016-10-10 18:16:22 +02:00
Piotr Drąg
a3ec58345e display: use Unicode in translatable strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772199
2016-10-03 15:20:42 +02:00
Bastien Nocera
8da6fa28e1 display: Fix possible crash on startup
If no items are added to the GVariantBuilder, g_variant_builder_close()
would throw a critical, g_variant_builder_end() would throw a
segmentation fault.

As this can only happen when there are no items added to the output_ids
hashtable, this should only happen if there are no displays known to
libgnome-desktop (and therefore mutter).

See https://bugzilla.redhat.com/show_bug.cgi?id=1280075

https://bugzilla.gnome.org/show_bug.cgi?id=771875
2016-09-24 02:46:38 +02:00