Commit Graph

191 Commits

Author SHA1 Message Date
Jan Horak
6234216f8c Bug 1417847 - [CSD] Doubleclick event on draggable area restores/maximizes window; r=stransky
The drag area should process doubleclick event as request for restore/maximize
because otherwise there's no other option to do the action when Firefox
is drawing window decoration. We follow similar path as mac which handles this
in mouseUp event.

MozReview-Commit-ID: KpCnHTdteLr

--HG--
extra : rebase_source : bf0680e33fd5a5b6c931b5260430fdd3fd995769
2018-02-15 09:50:56 +01:00
Martin Stransky
45ea89eb15 Bug 1433866 - Rename CSD_SUPPORT_FULL/FLAT to better names, r=jhorak
MozReview-Commit-ID: 8btSuxa5oeT

--HG--
extra : rebase_source : 775f98623f5fd9b11c6d7bb152ddf74fc8c7d7e1
2018-02-19 16:35:43 +01:00
Boris Zbarsky
9bdcffc985 Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8
The change to RootAccessible.cpp fixes an obvious bug introduced in bug 741707.

The visibility changes in gfx/thebes are because NS_DECL_ISUPPORTS has a
trailing "public:" that those classes were relying on to have public
constructors.

MozReview-Commit-ID: IeB8KIJCGhU
2018-02-12 15:44:40 -05:00
Hiroyuki Ikezoe
052a0b70ad Bug 1431295 - Include "X11UndefineNone.h" after including gdx.h in nsWindow.h. r=botond
MozReview-Commit-ID: 9SumgYc5pNE

--HG--
extra : rebase_source : 1fa191d22d7c2b5d696aeaff0e6a44dabd59e585
2018-01-18 14:12:51 +09:00
Sylvestre Ledru
424664ff30 Bug 1278282 - Remove the 'MOZ_WIDGET_GTK == 2' defines r=karlt,lsalzman
MozReview-Commit-ID: 3v8D600g8St

--HG--
extra : rebase_source : 34ea6f9868c1b322076c24daa75dc33e27b6704e
2018-01-10 08:52:04 +01:00
Martin Stransky
c1435cf451 Bug 1425841 - Implement GetWaylandDisplay() and GetWaylandSurface() needed by WindowSurfaceWayland, r=jhorak
MozReview-Commit-ID: Hlo1ceAIrL2

--HG--
extra : rebase_source : 3c3a5f4dc1dd8360a19c8160a85da5a5f6de3cac
2017-12-18 15:53:50 +01:00
Martin Stransky
034109dd85 Bug 1421974 - refactor nsWindow::HideWindowChrome() to nsWindow::SetWindowDecoration() and share it with nsWindow::SetDrawsInTitlebar, r=jhorak
MozReview-Commit-ID: 3xEdMXq9JvJ

--HG--
extra : rebase_source : 20a981ec562388337f826cbfcc5cdd5a4c6c37a8
2017-12-01 15:09:11 +01:00
Martin Stransky
5b47065c12 Bug 1418829 - Export GetCSDSupportLevel() as public from nsWindow, r=jhorak
We need that for nsLookAndFeel module.

MozReview-Commit-ID: 61YKeAUoKEu

--HG--
extra : rebase_source : 3587d39005fe8e6a63b527f55f377182bf1c69bd
2017-11-20 14:28:29 +01:00
Robin Grenet
34508b32f6 Bug 1360278 - Add preference to trigger context menu on mouse up for GTK+ and macOS, r=mstange,smaug
MozReview-Commit-ID: Bg60bD8jIg6

--HG--
extra : rebase_source : cc8bd5796096f49ad4fdab81885a426afd6117e4
2017-11-16 13:35:58 +01:00
Martin Stransky
646ed8e303 Bug 1414272 - Implement SetNonClientMargins() for Gtk+, r=jhorak
Original patch author is Andrew Comminos [:acomminos] <andrew@comminos.com>

MozReview-Commit-ID: Jnqz35iNsQb

--HG--
extra : rebase_source : b3be56afc3330a98a981af0d8b85a28164953e1c
2017-11-03 15:38:29 +01:00
Martin Stransky
6a4c5abeaf Bug 1410894 - Add decoration drawing setup to nsWindow, r=jhorak
MozReview-Commit-ID: BHtqoOdfRpS

--HG--
extra : rebase_source : 4baaebff7e86d79de833e14c9284adc22a787180
2017-10-27 11:19:08 +02:00
Nicholas Nethercote
d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Michael Smith
6fcebfbe5b Bug 1373739 - Make headless compositing Windows-compatible, in addition to Linux. r=dvander
To make the HeadlessCompositorWidget work under Windows as well as Linux, I had
to change the way that I hooked it into the existing CompositorWidget system.
Under GTK, the CompositorWidgetInitData and CompositorWidgetDelegate types
provided the information needed by the headless compositor widget already (the
widget client size). On Windows, however, the definitions of these types
differ, and the client size information is simply retrieved from the platform
APIs when needed.

After this patch, CompositorWidgetDelegate is renamed to
PlatformCompositorWidgetDelegate, and a new base class called
CompositorWidgetDelegate is added with "AsPlatformSpecificDelegate()" and
"AsHeadlessCompositorWidget()" methods. In non-headless mode, widgets use
AsPlatformSpecificDelegate() to access the Windows- and GTK-specific delegate
APIs. In headless mode, AsHeadlessCompositorWidget() is used to access the
singular CompositorWidget implementation for headless. Meanwhile, the
CompositorWidgetInitData IPDL type is made into a union which always contains a
headless-specific HeadlessCompositorWidgetInitData struct and under GTK and
Windows also contains an {X11,Win}CompositorWidgetInitData struct.

This also includes a small patch to ensure that the GPU process and
hardware-accelerated compositing are always disabled under headless mode. These
features weren't activated by default in the Linux environments I tested in, but
did end up activating (and then promptly crashing Firefox) when I tested on
Windows.

MozReview-Commit-ID: CocPoHBDV7H

--HG--
extra : rebase_source : 4581fa63aa3a9f32a8dc2672015a35b9be01b20f
2017-07-06 17:45:34 -07:00
Samael Wang
a4e6b1337a Bug 1350643 - Part 5.2: Use per-monitor gdkScaleFactor to set contentsScaleFactor & nsWindow::GetDesktopToDeviceScale if running in gtk/wayland. r=karlt
MozReview-Commit-ID: Grs4dUqvLew

--HG--
extra : rebase_source : a5524e08fea8fb3623a55c486b33e95c4212fa59
2017-06-16 11:13:59 +08:00
Mats Palmgren
15925cc551 Bug 1377486 - Make nsWindow 'final' to possibly devirtualize some calls. r=tn
MozReview-Commit-ID: GrcIukJYmt6
2017-07-01 19:59:21 +02:00
Martin Stransky
5f9fc84d1a Bug 1364355 - Implement UpdateOpaqueRegion() by gdk_window_set_opaque_region(), r=karlt
MozReview-Commit-ID: 50N99ZlvFUh

--HG--
extra : rebase_source : d095f93a858271c8a622f127724b06246e9f4bf9
2017-05-26 21:27:32 +02:00
Martin Stransky
0d7ee0c159 Bug 1364355 - Add support for using ARGB windows with OMTC when an X11 compositor is active. r=karlt
Authored by Andrew Comminos <andrew@comminos.com>

MozReview-Commit-ID: FIQBHSXgjMh

--HG--
extra : rebase_source : 1ae73bed3b2b933d11803ae3b93afbf3d1e1f570
2017-06-01 11:28:50 +02:00
Phil Ringnalda
c3d89ab945 Backed out 3 changesets (bug 1364355) for timeouts in test_panel_anchoradjust.xul
Backed out changeset 7cc2790574dc (bug 1364355)
Backed out changeset 2ee6598089a3 (bug 1364355)
Backed out changeset c4c2645ca8b7 (bug 1364355)

MozReview-Commit-ID: 5JEGvHeCWIv
2017-05-26 20:30:45 -07:00
Martin Stransky
eb881749c2 Bug 1364355 - Implement UpdateOpaqueRegion() by gdk_window_set_opaque_region(), r=karlt
MozReview-Commit-ID: 50N99ZlvFUh

--HG--
extra : rebase_source : 63bcdeaa5f7129a9f0d171d9826f33b8dc6bbe34
2017-05-26 21:27:32 +02:00
Martin Stransky
3d05b54851 Bug 1364355 - Add support for using ARGB windows with OMTC when an X11 compositor is active. r=karlt
Authored by Andrew Comminos <andrew@comminos.com>

MozReview-Commit-ID: FIQBHSXgjMh

--HG--
extra : rebase_source : 22885a2846ec0bc718196d6e16bacb37b0410b25
2017-05-25 15:55:20 +02:00
Masayuki Nakano
872f694c63 Bug 1339543 part 4 Change nsIWidget::ExecuteNativeKeyBinding() to nsIWidget::GetEditCommands() which just retrieves edit commands for the type r=smaug
Now, nsIWidget::ExecuteNativeKeyBinding() isn't used by anybody for executing
edit commands.  Instead, they need array of edit commands for the key
combination.  So, the method should be renamed to GetEditCommands() and just
return edit commands as an array.

MozReview-Commit-ID: 4G0B1lJ8Lbe

--HG--
extra : rebase_source : 4a5829281d59677c773950c34d91a1cd8074d243
2017-05-19 17:49:41 +09:00
Gaith
aaaabee676 Bug 1219464 - Replace PRLogModuleInfo usage with LazyLogModule in widget/. r=erahm
MozReview-Commit-ID: Ge7I8YlNqgM
2016-05-18 22:55:42 +03:00
Kan-Ru Chen
3fd811aea7 Bug 1351630 - Override BaseWidget::GetWidgetScreen r=karlt
GetScreenBounds() is slow for the GTK port so we override and use
mBounds directly in nsWindow::GetWidgetScreen()

MozReview-Commit-ID: ICElOCEzswf

--HG--
extra : rebase_source : 2fb450cc9d933346cebfdbff0b32ea4130550395
2017-03-30 09:51:44 -04:00
Masayuki Nakano
fee81e4718 Bug 1338369 part.2 nsWindow for GTK should consume Shift key state of eContextMenu event if it's caused by Shift+F10 r=karlt,smaug
Shift+F10 is also well-known shortcut key on Linux.  So, it should behave same as pressing ContextMenu key.  So, for allowing web page to prevent its default, nsWindow for GTK needs to consume Shift key state at dispatching eContextMenu key.

Additionally, we should allow to open context menu with Shift+ContextMenu because only ContextMenu key press can be prevented its default by web page.  Therefore, we should allow users to open context menu even with keyboard even if web content doesn't want it.

Note that Ctrl+Shift+F10 or Alt+Shift+F10 should behave same as Shift+ContextMenu key, but we should discuss later.

MozReview-Commit-ID: 1mPGKMTsrkv

--HG--
extra : rebase_source : 75dd8333b24f5e2f4ded4414b5e5ee85de253cc7
2017-03-09 18:53:24 +09:00
Jim Chen
53a1107cd1 Bug 1343075 - Use GeckoEditableSupport from PuppetWidget; r=masayuki r=rbarker r=snorp r=esawin
Bug 1343075 - 1a. Add TextEventDispatcherListener::GetIMEUpdatePreference; r=masayuki

Add a GetIMEUpdatePreference method to TextEventDispatcherListener to
optionally control which IME notifications are received by NotifyIME.
This patch also makes nsBaseWidget forward its GetIMEUpdatePreference
call to the widget's native TextEventDispatcherListener.

Bug 1343075 - 1b. Implement GetIMEUpdatePreference for all TextEventDispatcherListener; r=masayuki

This patch implements GetIMEUpdatePreference for all
TextEventDispatcherListener implementations, by moving previous
implementations of nsIWidget::GetIMEUpdatePreference.

Bug 1343075 - 2. Allow setting a PuppetWidget's native TextEventDispatcherListener; r=masayuki

In PuppetWidget, add getter and setter for the widget's native
TextEventDispatcherListener. This allows overriding of PuppetWidget's
default IME handling. For example, on Android, the PuppetWidget's native
TextEventDispatcherListener will communicate directly with Java IME code
in the main process.

Bug 1343075 - 3. Add AIDL interface for main process; r=rbarker

Add AIDL definition and implementation for an interface for the main
process that child processes can access.

Bug 1343075 - 4. Set Gecko thread JNIEnv for child process; r=snorp

Add a JNIEnv* parameter to XRE_SetAndroidChildFds, which is used to set
the Gecko thread JNIEnv for child processes. XRE_SetAndroidChildFds is
the only Android-specific entry point for child processes, so I think
it's the most logical place to initialize JNI.

Bug 1343075 - 5. Support multiple remote GeckoEditableChild; r=esawin

Support remote GeckoEditableChild instances that are created in the
content processes and connect to the parent process GeckoEditableParent
through binders.

Support having multiple GeckoEditableChild instances in GeckoEditable by
keeping track of which child is currently focused, and only allow
calls to/from the focused child by using access tokens.

Bug 1343075 - 6. Add method to get GeckoEditableParent instance; r=esawin

Add IProcessManager.getEditableParent, which a content process can call
to get the GeckoEditableParent instance that corresponds to a given
content process tab, from the main process.

Bug 1343075 - 7. Support GeckoEditableSupport in content processes; r=esawin

Support creating and running GeckoEditableSupport attached to a
PuppetWidget in content processes.

Because we don't know PuppetWidget's lifetime as well as nsWindow's,
when attached to PuppetWidget, we need to attach/detach our native
object on focus/blur, respectively.

Bug 1343075 - 8. Connect GeckoEditableSupport on PuppetWidget creation; r=esawin

Listen to the "tab-child-created" notification and attach our content
process GeckoEditableSupport to the new PuppetWidget.

Bug 1343075 - 9. Update auto-generated bindings; r=me
2017-03-07 22:34:39 -05:00
Benjamin Smedberg
e2482f716f Bug 1338172 part E - make all the PPluginWidget stuff Windows-only. Rip out the GTK-specific native widget support from widget/gtk/nsWindow and elsewhere, r=jimm
MozReview-Commit-ID: J6E8sYcyX4U

--HG--
extra : rebase_source : 63aa9d4a603a7cc56e068ce05434fb7faceac751
extra : source : 9ee6c6f4e59c7967108a727a80e46d686b983a0b
2017-02-09 11:53:50 -05:00
Wes Kocher
4468d77e14 Backed out 5 changesets (bug 1338172) for linux crashtest failures a=backout
Backed out changeset 9ee6c6f4e59c (bug 1338172)
Backed out changeset 1c92fbfca20a (bug 1338172)
Backed out changeset 907d9c3d1043 (bug 1338172)
Backed out changeset e4994ab9d628 (bug 1338172)
Backed out changeset 6209f07e1f26 (bug 1338172)

MozReview-Commit-ID: 3f4xBRcGPqM
2017-02-14 14:31:54 -08:00
Benjamin Smedberg
dc59402254 Bug 1338172 part E - make all the PPluginWidget stuff Windows-only. Rip out the GTK-specific native widget support from widget/gtk/nsWindow and elsewhere, r=jimm
MozReview-Commit-ID: J6E8sYcyX4U

--HG--
extra : rebase_source : 18a7bd7d5180606201d93a25c766df7285405094
extra : histedit_source : ae893f87b074a7a17a0e56f835977fea074f25e8
2017-02-09 11:53:50 -05:00
Jamie Nicol
7a3e0c46f7 Bug 1319764 - Ensure Gtk window unmap workaround is actually used. r=karlt
We were miscounting the number of manual configure events which we
needed to send gtk as the workaround for bug 1225044, causing it not
to work in some cases. This is because configure events can come from
more sources than were counting.

Decrement mPendingConfigures only as far as zero, like
configure_request_count in gtk_window_configure_event().

MozReview-Commit-ID: GxpR2Zozxor

--HG--
extra : rebase_source : 9d02c4d019d8bea7a07c20fb1435d2f677ae6e28
2017-01-13 14:23:29 +00:00
Nicholas Nethercote
523bee37b8 Bug 1325234 (part 9) - Remove remaining NS_IMETHOD_ occurrences from nsIWidget. r=mstange.
|virtual T| is clearer than |NS_IMETHOD_(T)|.

--HG--
extra : rebase_source : 9c8f423d7a89782a4d790a50e137071271086eed
2016-12-21 15:27:20 +11:00
Nicholas Nethercote
e52b19470c Bug 1325234 (part 6) - Streamline nsIWidget::SetTitle. r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual nsresult| because some call
sites are checked and others aren't.

--HG--
extra : rebase_source : 6723b9db709d1506dd394b1e85572309c1c2e2cf
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
ea1e2ca6ce Bug 1325234 (part 5) - Streamline nsIWidget::SetCursor (both versions). r=jimm.
This patch changes one from |NS_IMETHOD| to |virtual nsresult| and the other to
|virtual void|.

--HG--
extra : rebase_source : 55af71c01dc75d6bf7c63191e9cfabc9f5368ffa
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
0eaecf55da Bug 1325234 (part 4) - Streamline nsIWidget::{SetFocus,SetNonClientMargins}(). r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual nsresult|.

--HG--
extra : rebase_source : 5e54c2fd340c393b33c9e1dcf20a80fe2f41b2f4
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
da5978a842 Bug 1325234 (part 3) - Streamline nsIWidget::Show(). r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual void|. The return value was
only checked in one low-value assertion and one other place where the check had
no useful effect (in nsCocoaWindow::HideWindowChrome()).

--HG--
extra : rebase_source : f6671e9e0e10ee18fb32f8b1c83f1e64c3d97e67
2016-12-21 11:12:54 +11:00
Nicholas Nethercote
e2d9e4ed68 Bug 1325234 (part 2) - Streamline nsIWidget::Invalidate(). r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual void|. The return value was
only checked in one low-value assertion so I decided it wasn't needed.

--HG--
extra : rebase_source : 3523d9a086cf98c40d237d777f5dd471af0d7465
2016-12-20 09:55:32 +11:00
Nicholas Nethercote
3af5047314 Bug 1299335 (part 8) - Streamline nsIWidget::Enable. r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual void| because every
implementation of these functions always returns |NS_OK|.

--HG--
extra : rebase_source : 07ee29c514bf35b97d7195c53bb5b9220d1ef961
2016-12-19 20:54:16 +11:00
Nicholas Nethercote
a28c8f38b2 Bug 1299335 (part 7) - Streamline nsIWidget::{Move,Resize}. r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual void| because every
implementation of these functions always returns |NS_OK|.

--HG--
extra : rebase_source : 6207df5a46aeb6b8aaa0f697447a51bc6a6dc366
2016-12-19 20:54:03 +11:00
Nicholas Nethercote
d0912b2968 Bug 1299335 (part 4) - Streamline nsIWidget::HideWindowChrome. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from the android nsIWidget instance,
  because it can use the nsBaseWidget one.

--HG--
extra : rebase_source : 0791d3cb05907d6b41879549b52f3a33018abf45
2016-12-16 10:54:12 +11:00
Nicholas Nethercote
1dab0c3072 Bug 1299335 (part 3) - Streamline nsIWidget::SetParent. r=mstange.
This patch removes its return value, because none of the call sites check it
except for one non-vital assertion.

--HG--
extra : rebase_source : 3471c4e22394b8a05c6708d0f8469686ffad9814
2016-12-16 10:54:11 +11:00
Nicholas Nethercote
efc5071ff2 Bug 1299335 (part 2) - Streamline nsIWidget::SetIcon. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : a1a04193bc3940f1468c7c235f6d6e0341d0f1c2
2016-12-16 10:54:11 +11:00
Nicholas Nethercote
3970265787 Bug 1299335 (part 1) - Change some nsIWidget function return values from |NS_IMETHOD| to |virtual MOZ_MUST_USE nsresult|. r=jimm.
Specifically: OnDefaultButtonLoaded, AttachNativeKeyEvent, BeginMoveDrag,
BeginResizeDrag, GetAttention. These are all fallible functions whose result is
always checked.

The patch also moves some trivial function definitions from nsBaseWidget.cpp to
nsBaseWidget.h, and removes the android BeginResizeDrag() because it can
use the nsBaseWidget one.

--HG--
extra : rebase_source : ef32a41b547bcbc21f7df0043f683307470b136e
2016-12-16 10:54:02 +11:00
Ryan Hunt
ad202d92b4 Bug 1304637 - Move back to using window display for basic composition paths. r=lsalzman
MozReview-Commit-ID: CutLou4qJi
2016-10-27 14:39:59 -04:00
Nicolas Silva
9f87d72b3f Bug 1299860 - Don't use the compositor backend of a popup with ImageBridge and VRManager. r=Bas 2016-10-07 11:08:32 +02:00
Carsten "Tomcat" Book
2a026d93ba Backed out changeset 9fbc16390ef7 (bug 1299860) for bustage on a CLOSED TREE 2016-10-06 17:04:40 +02:00
Nicolas Silva
f10342b425 Bug 1299860 - Don't use the compositor backend of a popup with ImageBridge and VRManager. r=Bas 2016-10-06 16:39:56 +02:00
Ryan Hunt
9aa1274fbd Bug 1289251 - Create a CompositorWidget for GTK+X11 platform. r=acomminos,jrmuizel
MozReview-Commit-ID: 1eq3rRwv1g3

--HG--
extra : rebase_source : a6a5a51d58009beb4219586014cc512ecb28ea20
2016-07-22 10:23:07 -07:00
Sebastian Hengst
0f39134046 Backed out changeset c0285428a8a0 (bug 1289251) 2016-09-02 10:25:43 +02:00
Ryan Hunt
8c1ca9e531 Bug 1289251 - Create a CompositorWidget for GTK+X11 platform. r=acomminos,jrmuizel
MozReview-Commit-ID: 1eq3rRwv1g3

--HG--
extra : rebase_source : 525f7e0c20fd166d8e6420e8d692edb3459b2d7a
2016-07-22 10:23:07 -07:00
Nicholas Nethercote
5bf56904c4 Bug 1296993 (part 8) - Streamline nsIWidget::CaptureMouse. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 1c42bb32a662f2659c934a245ecd0025045120a5
2016-08-25 14:10:02 +10:00
Nicholas Nethercote
346d5f4895 Bug 1296993 (part 7) - Streamline nsIWidget::CaptureRollupEvents. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Puts an empty implementation into nsBaseWidget.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 2a94a47f1e7fe986d1efc3854c72968a3e28e365
2016-08-25 13:43:27 +10:00