Commit graph

569 commits

Author SHA1 Message Date
Sylvestre Ledru
41d1d79094 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D19663

--HG--
extra : moz-landing-system : lando
2019-02-15 08:15:57 +00:00
sotaro
0e2cb6d4e8 Bug 1514156 - Add RenderCompositorEGL for wayland r=nical
When GDK_BACKEND is wayland, widget is not fully mapped during creating CompositorSession. Needs to create valid EGLSurface after widget is fully mapped.

Differential Revision: https://phabricator.services.mozilla.com/D18940
2019-02-12 16:33:31 +09:00
Martin Stransky
9719483cc6 Bug 1525874 - [Linux/Gtk+] When mozilla.widget.use-argb-visuals is set disable toplevel window shape mask, r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D18947

--HG--
extra : moz-landing-system : lando
2019-02-07 14:13:34 +00:00
Martin Stransky
42ff7a7ef2 Bug 1523556 - [Linux/Gtk+] Don't apply titlebar shape mask to maximized windows, r=dao
Differential Revision: https://phabricator.services.mozilla.com/D18823

--HG--
extra : moz-landing-system : lando
2019-02-07 12:28:48 +00:00
Martin Stransky
2c149000af Bug 1525537 - [Linux/Gtk+] Listen on notify::gtk-decoration-layout signal to change titlebar layout, r=dao
Differential Revision: https://phabricator.services.mozilla.com/D18817

--HG--
extra : moz-landing-system : lando
2019-02-06 13:12:34 +00:00
Martin Stransky
ed7fbd3a13 Bug 1523721 - [Linux/Gtk+] Continue processing window_state_event handler when titlebar is updated, r=dao
Recently we quit nsWindow::OnWindowStateEvent()/window_state_event handler when titlebar needs an update due to focus change.
That's incorrect as we need to process other information from the handler - maxminized/normal window state.

Differential Revision: https://phabricator.services.mozilla.com/D18681

--HG--
extra : moz-landing-system : lando
2019-02-05 15:07:51 +00:00
Sylvestre Ledru
14486004b6 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D18488

--HG--
extra : moz-landing-system : lando
2019-02-04 19:10:18 +00:00
sotaro
4776754f01 Bug 1524168 - Request AlphaVisual for WebRender r=jrmuizel
When hardware acceleration is enabled, GLContextGLX::FindVisual() is used to choose visual. When widget does not request AlphaVisual, the FindVisual() always choose RGB(24bit) visual. It causes to loose alpha during readback.

Differential Revision: https://phabricator.services.mozilla.com/D18179

--HG--
extra : moz-landing-system : lando
2019-01-31 16:49:08 +00:00
Emilio Cobos Álvarez
ef7d8198eb Bug 1520502 - Set the standard cursor and the custom cursor in the same IPC message. r=jmathies
This cleans up a bit and allows us to be smarter about which cursors
should we allow from content or what not, which will help with bug 1445844 and
co.

Differential Revision: https://phabricator.services.mozilla.com/D16711
2019-01-26 07:49:28 +01:00
Martin Stransky
ff201af524 Bug 1521630 [Linux/Gtk] Use GdkEventCoordsToDevicePixels() to get mouse coordinates for mDraggableRegion.Contains(), r=ntim,TYLin
Differential Revision: https://phabricator.services.mozilla.com/D17490

--HG--
extra : moz-landing-system : lando
2019-01-24 19:29:14 +00:00
Martin Stransky
59a8114e76 Bug 1521012 - [Linux/GNOME] Use X shape mask to draw transparent corners when we draw to titlebar, r=lsalzman
To support rounded corners of Gtk+ titlebar themes (Adwaita, Radiance..) in GNOME we need to use X shape mask
as fully transparent toplevel window causes various issues (like Bug 1516224).

We draw mShell as transparent and mContainer as non-transparent with shape mask applied. The shape mask
is generated only when titlebar rendering is enabled and it's generated from GtkHeaderBar Widget
to match the exact look.

We use existing mTransparencyBitmap for the shape mask where mTransparencyBitmapForTitlebar controls
whether it's a general shape mask or our specialised shape for titlebar only.

This is already enabled for GNOME environment by default. So there's a new preference
widget.default-hidden-titlebar added to easily disable it if any issue appears
during testing.

Differential Revision: https://phabricator.services.mozilla.com/D17283

--HG--
extra : moz-landing-system : lando
2019-01-23 12:36:25 +00:00
Cosmin Sabou
7ccc9d8b0b Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Tim Nguyen
60a5143df0 Bug 1241885 - Implement support for -moz-window-dragging in GTK and remove toolkit toolbar-drag binding. r=dao,bzbarsky,stransky
The restriction preventing fullscreen windows from being dragged is removed.

Differential Revision: https://phabricator.services.mozilla.com/D15075

--HG--
extra : moz-landing-system : lando
2019-01-18 22:42:24 +00:00
Andreea Pavel
95431afe85 Backed out 1 changesets (bug 1241885) for build bustages on a CLOSED TREE
Backed out changeset 176be7000d33 (bug 1241885)
2019-01-18 23:49:55 +02:00
Tim Nguyen
495df7ddea Bug 1241885 - Implement support for -moz-window-dragging in GTK and remove toolkit toolbar-drag binding. r=dao,bzbarsky,stransky
The restriction preventing fullscreen windows from being dragged is removed.

Differential Revision: https://phabricator.services.mozilla.com/D15075

--HG--
extra : moz-landing-system : lando
2019-01-18 16:51:08 +00:00
Martin Stransky
53be695239 Bug 1490344 - [Linux/Gtk] Enable hidden system titlebar by default on Gnome, r=dao
This patch implements -moz-gtk-csd-hide-titlebar-by-default media query
to check if the system titlebar should be disabled by default on Linux systems
(it's already disabled on Window/Mac).

It also removes explicit definition of browser.tabs.drawInTitlebar preference on Linux.
When browser.tabs.drawInTitlebar is missing the -moz-gtk-csd-hide-titlebar-by-default
is used to obtain the titlebar state. When browser.tabs.drawInTitlebar is set
in about:config or by Customize menu, the user peference is used instead of the default.

It also fixes a -moz-gtk-csd-available media query,
it was always true regardless the actual system setting.

Differential Revision: https://phabricator.services.mozilla.com/D16036

--HG--
extra : moz-landing-system : lando
2019-01-17 12:44:49 +00:00
Andreea Pavel
d0b4b569af Backed out changeset aa442da7cfd8 (bug 1490344) for failing bc at browser/components/customizableui/test/browser_970511_undo_restore_default.js on a CLOSED TREE 2019-01-16 13:33:24 +02:00
Martin Stransky
0e01fab619 Bug 1490344 - [Linux/Gtk] Enable hidden system titlebar by default on Gnome, r=dao
This patch implements -moz-gtk-csd-hide-titlebar-by-default media query
to check if the system titlebar should be disabled by default on Linux systems
(it's already disabled on Window/Mac).

It also removes explicit definition of browser.tabs.drawInTitlebar preference on Linux.
When browser.tabs.drawInTitlebar is missing the -moz-gtk-csd-hide-titlebar-by-default
is used to obtain the titlebar state. When browser.tabs.drawInTitlebar is set
in about:config or by Customize menu, the user peference is used instead of the default.

It also fixes a -moz-gtk-csd-available media query,
it was always true regardless the actual system setting.

Differential Revision: https://phabricator.services.mozilla.com/D16036

--HG--
extra : moz-landing-system : lando
2019-01-15 14:47:03 +00:00
Martin Stransky
956e93c403 Bug 1516224 - [Linux/Gtk] Disable ARGB toplevel visual on X11 SW compositor due to visible graphics artifacts, r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D16561

--HG--
extra : moz-landing-system : lando
2019-01-15 17:45:35 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Ehsan Akhgari
06c3d29113 Bug 1521000 - Part 1: Reformat the tree to ensure everything is formatted correctly with clang-format r=sylvestre
Summary: # ignore-this-changeset

Reviewers: sylvestre

Reviewed By: sylvestre

Subscribers: reviewbot, emilio, jandem, bbouvier, karlt, jya

Bug #: 1521000

Differential Revision: https://phabricator.services.mozilla.com/D16936

--HG--
extra : histedit_source : 4add583bfa729ccc1aef934629ed45ff095189b0
2019-01-18 10:12:56 +01:00
Masayuki Nakano
0eed04a27d Bug 1516326 - part 1: Move implementation of nsWindow::OnKeyPress() and nsWindow::OnKeyRelease() into KeymapWrapper r=karlt
Move all implementation of nsWindow::OnKeyPress() and nsWindow::OnKeyRelease()
into KeymapWrapper because the implementation is a little bit complicated
but not loggable.  When we get bug reports which depend on environment around
IME/key handling like bug 1498823, it's useful to log those methods behavior
too.

Differential Revision: https://phabricator.services.mozilla.com/D15323

--HG--
extra : moz-landing-system : lando
2019-01-07 23:15:33 +00:00
Martin Stransky
1d8979cc73 Bug 1512416 - [Wayland/OpenGL] Resize wl_elg_window when widget scale changes, r=jhorak"
Differential Revision: https://phabricator.services.mozilla.com/D14404

--HG--
extra : moz-landing-system : lando
2018-12-20 11:54:13 +00:00
Dorel Luca
d586d50b96 Backed out changeset be2cd52df099 (bug 1512416) for build bustage 2018-12-19 14:24:31 +02:00
Martin Stransky
973fb364ec Bug 1512416 - [Wayland/OpenGL] Resize wl_elg_window when widget scale changes, r=jhorak"
Differential Revision: https://phabricator.services.mozilla.com/D14404

--HG--
extra : moz-landing-system : lando
2018-12-19 08:46:27 +00:00
Martin Stransky
70f9a9330e Bug 1514828 - [Wayland] Enable CSD titlebar mode on all Wayland compositors, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D14767

--HG--
extra : moz-landing-system : lando
2018-12-18 13:43:25 +00:00
shindli
1c998613b1 Backed out changeset 61de4550c887 (bug 1512416) for bustages in builds/worker/workspace/build/src/widget/gtk/mozcontainer.cpp:230:15 2018-12-18 15:53:38 +02:00
Martin Stransky
4f8c2372b0 Bug 1512416 - [Wayland/OpenGL] Resize wl_elg_window when widget scale changes, r=jhorak"
Differential Revision: https://phabricator.services.mozilla.com/D14404

--HG--
extra : moz-landing-system : lando
2018-12-18 08:59:18 +00:00
Martin Stransky
ba6e539858 Bug 1485616 - [Wayland] Wait with drawing until mozcontainer init is finished, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D14070

--HG--
extra : moz-landing-system : lando
2018-12-11 10:09:13 +00:00
Martin Stransky
0329d23770 Bug 1511951 - [Wayland/EGL] HiDPI - Set scale to EGL window, r=jhorak
- Wayland - Set proper scale to wl_egl_window when it's created and resized
- Wayland - Remove unused gtk_widget_set_app_paintable()

Differential Revision: https://phabricator.services.mozilla.com/D13725

--HG--
extra : moz-landing-system : lando
2018-12-05 19:53:33 +00:00
Martin Stransky
45555dc042 Bug 1489902 - [Wayland/OpenGL] Don't draw to wl_surface owned by GtkWidget (mozcontainer) until it's commited, r=jhorak
Use frame callback to determine if we can draw to wl_surface owned by GtkWidget and use it as a base for EGL Window.

Differential Revision: https://phabricator.services.mozilla.com/D13722

--HG--
extra : moz-landing-system : lando
2018-12-06 11:02:46 +00:00
Martin Stransky
fcdee6dedb Bug 1491808 - [Linux/CSD/Titlebar] Force toplevel window repaint when titlebar rendering is enabled and its state changes, r=bzbarsky
Titlebar (StyleAppearance::MozWindowTitlebar) style depends on toplevel window focus
and we need to redraw it when toplevel window focus changes.

Unfortunately according to https://gitlab.gnome.org/GNOME/gtk/issues/1395
the toplevel window focus can't be used here as we can have active but unfocused
toplevel window during drag & drop.

Gtk+ controls window active appearance by window-state-event signal
but gecko uses focus-in/out signals, so we need to repaint the titlebar
when window-state-event comes *after* focus-in/out signals.

We can't call mWidgetListener->WindowActivated() (and WindowDeactivated())
as it was already called from focus-in/out handlers before window-state-event.

Depends on D13051

Differential Revision: https://phabricator.services.mozilla.com/D13052

--HG--
extra : moz-landing-system : lando
2018-12-03 12:48:52 +00:00
Martin Stransky
572a588428 Bug 1491808 - Listen on window-state-event to set titlebar active/inactive state, r=jhorak
This is a workaround for https://gitlab.gnome.org/GNOME/gtk/issues/1395
Gtk+ controls window active appearance by window-state-event signal
but gecko uses focus-in/out signals.

So we need to set the the titlebar state
when window-state-event comes *after* focus-in/out signals.

Differential Revision: https://phabricator.services.mozilla.com/D13051

--HG--
extra : moz-landing-system : lando
2018-12-03 12:48:35 +00:00
Martin Stransky
2768da18cb Bug 1511011 - Clean up wayland subsurface creation/management, r=jhorak
- Don't create wl_subsurface in map event but rather when it's requested by compositor.
- Don't create wl_surface at nsWindow::OnExposeEvent but check ready_to_draw instead.
- Rename parent_surface_committed_handler to frame_clock_after_paint_handler.
- Rename parent_surface_committed to ready_to_draw.
- Rename needs_clear to surface_needs_clear.

Depends on D13404

Differential Revision: https://phabricator.services.mozilla.com/D13405

--HG--
extra : moz-landing-system : lando
2018-12-03 13:06:21 +00:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Ryan Hendrickson
ed4416506f Bug 1464679 - X11: Only use _NET_WM_BYPASS_COMPOSITOR hint with Basic compositor. r=karlt
Differential Revision: https://phabricator.services.mozilla.com/D13284

--HG--
extra : moz-landing-system : lando
2018-11-29 03:22:10 +00:00
Masayuki Nakano
d9b54ef848 Bug 1505147 - nsWindow::OnKeyPressEvent() shouldn't dispatch eKeyDown event when IMContextWrapper::OnKeyEvent() has already dispatched it for the event r=m_kato
Currently, IMContextWrapper::OnKeyEvent() assumes that IME won't synthesize
keyboard event asynchronously again in some cases.  For example, one of the
cases is that user inputs text with a dead key sequence.  However, IME may
synthesize key event asynchronously only in a few cases even in a dead key
sequence.  Unfortunately, for not losing a chance to dispatch eKeyDown/eKeyUp
event, we need to keep dispatching eKeyDown or eKeyUp event when we receive
original event in dead key sequence. However, according to this bug, we need to
stop dispatching eKeyDown and eKeyUp events when we receive unexpected
async synthesized key event.

If IMContextWrapper::OnKeyEvent() needs to return whether it (has already)
dispatched an eKeyDown or eKeyUp and whether it was consumed, then,
nsWindow can stop dispatching redundant eKeyDown and eKeyUp events.

So, this patch makes IMContextWrapper::OnKeyEvent() return
KeyHandlingState enum class instead of just a bool value to notify the caller
of detail of the event status.  And also makes each caller of nsWindow not
dispatch eKeyDown nor eKeyUp event when it returns
KeyHandlingState::eNotHandledButDispatched or
KeyHandlingState::eNotHandledButConsumed.

Differential Revision: https://phabricator.services.mozilla.com/D12517

--HG--
extra : moz-landing-system : lando
2018-11-26 03:26:39 +00:00
Martin Stransky
786a526298 Bug 1507475 - [Wayland] Implement global wayland registry, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D12255

--HG--
extra : moz-landing-system : lando
2018-11-23 07:04:16 +00:00
Noemi Erli
c00dbe5749 Backed out changeset bafd708f5788 (bug 1507475) for bustages in builds/worker/workspace/build/src/widget/gtk/mozcontainer.cpp CLOSED TREE 2018-11-22 20:09:34 +02:00
Martin Stransky
d78c51a229 Bug 1507475 - [Wayland] Implement global wayland registry, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D12255

--HG--
extra : moz-landing-system : lando
2018-11-22 13:24:09 +00:00
Martin Stransky
e1d4349965 Bug 1507608 - [Linux/Gtk+] Mark also mShell as app paintable when drawing to mContainer, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D12430

--HG--
extra : moz-landing-system : lando
2018-11-21 14:44:06 +00:00
Martin Stransky
5cc8e9643b Bug 1506050 - [Linux/Gtk] Use NS_DOCUMENT_STATE_WINDOW_INACTIVE to set titlebar state, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D12104

--HG--
extra : moz-landing-system : lando
2018-11-20 15:51:18 +00:00
Martin Stransky
b18cbdec0a Bug 1505743 - [Wayland] Clear Wayland buffer when GtkWindow is mapped. r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D11999

--HG--
extra : moz-landing-system : lando
2018-11-20 15:39:32 +00:00
Mike Hommey
44eab55be8 Bug 1506027 - Remove remaining (now useless) MOZ_WIDGET_GTK >= 3 tests. r=karlt
Those are leftovers from bug 1278282.

Differential Revision: https://phabricator.services.mozilla.com/D11434

--HG--
extra : moz-landing-system : lando
2018-11-09 08:44:42 +00:00
Martin Stransky
582b645d9b Bug 1504904 - Don't use GDK_IS_WAYLAND_DISPLAY() as it's missing on Gtk+ X11 only builds, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D11610

--HG--
extra : moz-landing-system : lando
2018-11-12 15:25:38 +00:00
Martin Stransky
5e24fd07f7 Bug 1497534 - Check Gtk backdrop state flag to make Firefox toplevel window look inactive, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D10558

--HG--
extra : moz-landing-system : lando
2018-11-02 10:23:08 +00:00
Jan Horak
229b3f0529 Bug 1493081 - Added nsIWidget::GetDesktopToDeviceScaleByScreen for scale factor lookup by window position; r=mattwoodrow
We've added nsIWidget::GetDesktopToDeviceScaleByScreen which will return scale factor of the newly placed window
according to its position on the display. This change is to move implementation to the nsIWidget derived classes.
We need that for GTK Wayland, because on the Wayland we cannot determine absolute position of the window, we
need to use parent's window scale factor. For other platforms the GetDesktopToDeviceScaleByScreen is implemented
in nsBaseWidget.

Differential Revision: https://phabricator.services.mozilla.com/D7290

--HG--
extra : moz-landing-system : lando
2018-10-23 12:49:21 +00:00
Csoregi Natalia
f95bae0402 Backed out changeset 9a3a43e8743d (bug 1493081) for bustages on AccessibleWrap.cpp. CLOSED TREE 2018-10-22 12:00:29 +03:00
Jan Horak
9ac0f986e7 Bug 1493081 - Added nsIWidget::GetDesktopToDeviceScaleByScreen for scale factor lookup by window position; r=mattwoodrow
We've added nsIWidget::GetDesktopToDeviceScaleByScreen which will return scale factor of the newly placed window
according to its position on the display. This change is to move implementation to the nsIWidget derived classes.
We need that for GTK Wayland, because on the Wayland we cannot determine absolute position of the window, we
need to use parent's window scale factor. For other platforms the GetDesktopToDeviceScaleByScreen is implemented
in nsBaseWidget.

Differential Revision: https://phabricator.services.mozilla.com/D7290

--HG--
extra : moz-landing-system : lando
2018-10-12 17:03:54 +00:00