408 Commits

Author SHA1 Message Date
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
Makoto Kato
18c5223126 Bug 1151753 - Set program class name when not using --class command line option. r=karlt
GTK bug: https://bugzilla.gnome.org/show_bug.cgi?id=747634

Before 3.16.3, GDK cannot override classname by --class command line option
when program uses gdk_set_program_class().  So if 3.16.3+, we should call
gdk_set_program_class() to set program class name of default.

MozReview-Commit-ID: KvNc3U6xHr7

--HG--
extra : rebase_source : aae14973022bb29eb89787b67323a845763c0650
2017-10-25 15:58:49 +09:00
Martin Stransky
79aef7f85b Bug 1348310 - Use CLOCK_MONOTONIC as a base for nsWindow::GetEventTimeStamp() on Wayland, r=karlt
We assume CLOCK_MONOTONIC as timebase for events on Wayland and use that to translates GDK event times to gecko timestamps.

MozReview-Commit-ID: LWd2KWTQeha

--HG--
extra : rebase_source : 1839d35989b9c29c60dd33d445db79afc75af9ab
2017-10-19 15:28:47 +02:00
Martin Stransky
fcfeac2a70 Bug 1411018 - Rename shellHasCSD to drawToContainer and mark our rendering widget by gtk_widget_set_app_paintable(), r=jhorak
Rename shellHasCSD to drawToContainer for better understanding and always mark our rendering widget by gtk_widget_set_app_paintable() to make sure Gtk+ does not draw default background for it.

MozReview-Commit-ID: 4mhxrG7C34i

--HG--
extra : rebase_source : 312e956e317c85196d27213dd86bd30b73a25b02
2017-10-23 21:44:02 +02:00
Martin Stransky
c2b677a91d Bug 1410894 - Load CSD config from nsLookAndFeel, r=jhorak
Make CSD setup and titlebar drawing available when users enable it by preference and also it's available on running system.

MozReview-Commit-ID: 4BLgzVWwX1R

--HG--
extra : rebase_source : 15293821b9962bd9d0ee22331e7fad9027a47a7a
2017-10-23 21:28:47 +02: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
Botond Ballo
02ae35c9e1 Bug 1400238 - Notify TabParent when the GTK client offset changes. r=karlt
MozReview-Commit-ID: 1TacAhl6c2M

--HG--
extra : rebase_source : 5641d417a6245cc2f8027fd91032119f1b36d461
2017-10-18 13:29:47 -04:00
Martin Stransky
64bb4e051b Bug 1186967 - ignore double-click on WM without _NET_WM_MOVERESIZE support, r=jhorak
MozReview-Commit-ID: 2Vs6i5leero

--HG--
extra : rebase_source : d8f2bbaf9ef9b2025478f029a68ee7e87e07de79
2017-10-17 09:50:18 +02:00
Ryan Hunt
979b5671a6 Bug 1407001 - Don't reset compositors for composited changed callback when GPUProcessManager is null. r=lsalzman
MozReview-Commit-ID: 4E31bt3Rzkz

--HG--
extra : rebase_source : 84a18ffcc77f37220284679c1dbb916a25524d31
2017-10-09 12:49:53 -05: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
Nicholas Nethercote
ebf1cb320b Bug 1400148 - Don't use -1 to represent an unset nsCursor. r=karlt.
Because UBSan complains about casting -1:

> runtime error: load of value 4294967295, which is not a valid value for type 'nsCursor'

--HG--
extra : rebase_source : 037a96700228ea0d427afa7c25c40490c701cdc4
2017-09-15 14:34:37 +10:00
Nicholas Nethercote
f582d96b98 Bug 1390428 (part 9) - Remove nsXPIDLCString. r=erahm.
This is straightforward, with only two notable things.

- `#include "nsXPIDLString.h" is replaced with `#include "nsString.h"`
  throughout, because all nsXPIDLString.h did was include nsString.h. The
  exception is for files which already include nsString.h, in which case the
  patch just removes the nsXPIDLString.h inclusion.

- The patch removes the |xpidl_string| gtest, but improves the |voided| test to
  cover some of its ground, e.g. testing Adopt(nullptr).

--HG--
extra : rebase_source : 452cc4a08046a1adb1a8099a7e85a1917de5add8
2017-08-17 15:29:03 +10:00
Ryan Hunt
95c23d28b7 Bug 1377950 - Reset all compositors when GdkScreen "composited-changed" fires. r=karlt
MozReview-Commit-ID: 3vva2XgSa60

--HG--
extra : rebase_source : 099a54f38695a7a88d5ca3a0dfc8cb948bfffb63
2017-08-11 02:52:08 -05:00
Nicholas Nethercote
f941156987 Bug 1386600 - Change nsIStringBundle methods to return |AString| instead of |wstring|. r=emk,sr=dbaron.
This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.

The patch also removes a couple of unused declarations from
nsIStringBundle.idl.

Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.

--HG--
extra : rebase_source : ac40bc31c2a4997f2db0bd5069cc008757a2df6d
2017-08-04 14:40:52 +10: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
Masayuki Nakano
937a9124a5 Bug 1379797 - nsWindow::GetEditCommandsRemapped() should do nothing if given event wasn't created with a native event r=karlt
When aEvent.mNativeKeyEvent of nsWindow::GetEditCommandsRemapped() is nullptr, that means the event was created without a native event.  Typically, chrome script created the event.  In such case, we should not execute native key bindings because doing it exposes the OS settings to chrome script because that might cause some privacy issue.  Therefore, the method should do nothing with such event.

MozReview-Commit-ID: 7ZHZjZ3ligT
2017-07-20 06:42:09 -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
Samael Wang
a4ddae112e Bug 1350643 - Part 5.1: Get per-monitor dpi in ScreenHelperGTK & use the same value in nsWindow::GetDPI. r=karlt
MozReview-Commit-ID: 9dOkUEzuUL8

--HG--
extra : rebase_source : 26fdbcc54edf8a3f4f0b166a88f85f98313bfe39
2017-06-16 10:58:11 +08:00
Samael Wang
c9d2b57f92 Bug 1350643 - Part 1: Rename gfxPlatformGtk::GetDPI/GetDPIScale to GetFontScaleDPI/GetFontScaleFactor to better distinguish from nsIWidget::GetDPI. r=karlt
MozReview-Commit-ID: 4fxMG1FBlM8

--HG--
extra : rebase_source : 767780c828b2a9914b5f3af3c2749568099bece1
2017-06-14 16:54:21 +08:00
Nicholas Nethercote
c86dc10505 Bug 1380227 - Avoid many UTF16toUTF8 and UTF8toUTF16 conversions in nsStringBundle. r=emk.
Most of the names passed to nsIStringBundle::{Get,Format}StringFromUTF8Name
have one of the two following forms:

- a 16-bit C string literal, which is then converted to an 8-bit string in
  order for the lookup to occur;

- an 8-bit C string literal converted to a 16-bit string, which is then
  converted back to an 8-bit string in order for the lookup to occur.

This patch introduces and uses alternative methods that can take an 8-bit C
string literal, which requires changing some signatures in other methods and
functions. It replaces all C++ uses of the old methods.

The patch also changes the existing {Get,Format}StringFromName() methods so
they take an AUTF8String argument for the name instead of a wstring, because
that's nicer for JS code.

Even though there is a method for C++ code and a different one for JS code,
|binaryname| is used so that the existing method names can be used for the
common case in both languages.

The change reduces the number of NS_ConvertUTF8toUTF16 and
NS_ConvertUTF16toUTF8 conversions while running Speedometer v2 from ~270,000 to
~160,000. (Most of these conversions involved the string
"deprecatedReferrerDirective" in nsCSPParser.cpp.)

--HG--
extra : rebase_source : 3bee57a501035f76a81230d95186f8c3f460ff8e
2017-07-12 15:13:37 +10:00
Martin Stransky
fa30ab7210 Bug 1373249 - Enable OMTC for composited popups, r=karlt
MozReview-Commit-ID: 1G4P2B4CA3z

--HG--
extra : rebase_source : aad1dbbae6e589f8925c2224f242b878d44a3d64
2017-06-15 17:17:53 +02: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
Sebastian Hengst
4da7fd48e3 Backed out changeset e744a3029de2 (bug 1375940) for failing dom/events/test/test_dblclick_kill_window.html. r=backout 2017-06-28 02:24:15 +02:00
Michael Layzell
068e7442ed Bug 1375940 - Part 1: Add a test for destroying a window during a click event while double-clicking, r=smaug
MozReview-Commit-ID: BdyWjvG9q8m
2017-06-27 16:24:48 -04:00
Bill McCloskey
f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Nicholas Nethercote
58786e1ea7 Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.

--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
2017-06-22 17:08:53 +10:00
Carsten "Tomcat" Book
8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey
6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
David Anderson
eda24ede27 Rename LayerManager::Composite to LayerManager::ScheduleComposite. (bug 1365879 part 17, r=mattwoodrow) 2017-06-20 01:17:21 -07:00
Carsten "Tomcat" Book
ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey
4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07: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
Andrew Comminos
302c93427f Bug 1364355 - Enable argb visual for GTK window behind hidden preference mozilla.widget.use-argb-visuals, r=karlt
This preference is default to false and allows to experiment with transparent widgets on Gtk.
Original patch autor is Andrew Comminos <andrew@comminos.com>.

MozReview-Commit-ID: JZkCjBWny3m

--HG--
extra : rebase_source : 116c4977d7d7f3927e6a4df203584d8b9c9ad57b
2017-05-25 15:45:22 +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
Andrew Comminos
f2d7adfe22 Bug 1364355 - Enable argb visual for GTK window behind hidden preference mozilla.widget.use-argb-visuals, r=karlt
This preference is default to false and allows to experiment with transparent widgets on Gtk.
Original patch autor is Andrew Comminos <andrew@comminos.com>.

MozReview-Commit-ID: JZkCjBWny3m

--HG--
extra : rebase_source : 18a3dd1ecb2ef87910307e3085a343a4d75403af
2017-05-25 15:45:22 +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
Wes Kocher
514e230373 Merge inbound to central, a=merge 2017-04-13 17:24:01 -07:00
Kartikaya Gupta
aa20d100c1 Merge m-c to graphics
MozReview-Commit-ID: Ij5C7MUete4
2017-04-11 10:09:54 -04:00
sotaro
292e80ffe3 Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow 2017-04-10 15:58:29 +09:00
Brendan Dahl
b082e33320 Bug 1353939 - Disable drag service in headless mode. r=jrmuizel
Drag service calls into GTK causing a crash in headless mode.
2017-04-10 11:30:52 -07:00
Lee Salzman
2b00b214b7 Bug 1354619 - allow nsWindow::SetTransparencyMode when it preserves current mode. r=mconley
MozReview-Commit-ID: FEqPTGlpbjE
2017-04-12 16:36:20 -04:00
Mike Conley
2a1794a4f5 Bug 1344839 - Don't allow transparent top-level windows on GTK. r=karlt
MozReview-Commit-ID: 9UP1UYcaF2F

--HG--
extra : rebase_source : 9a47973c5127561b82d2ec9dc19b86459f7c1936
2017-03-21 22:15:36 -04: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
Sebastian Hengst
9ab0e7db64 Backed out changeset aaaf793a4dd0 (bug 1344839) for permafailing test_leaf_layers_partition_browser_window.xul on Windows 8 x64 debug. r=backout 2017-03-29 01:19:04 +02:00
Mike Conley
87f33a89ed Bug 1344839 - Don't allow transparent top-level windows on GTK. r=karlt
MozReview-Commit-ID: 9UP1UYcaF2F

--HG--
extra : rebase_source : 33b5aa13466e642e335a0653f9f436bb64648c42
2017-03-21 22:15:36 -04:00
Kan-Ru Chen
824adc9354 Bug 1194751 - Part 5. Implement ScreenHelperGTK and delete old nsScreenManagerGtk/nsScreenGtk. r=karlt
ScreenHelperGTK is the platform dependent part of the original
nsScreenManagerGtk and nsScreenGtk. It registers monitors-changed
event listener from gtk and pushes updates to ScreenManager. See patch
part 4. for how ScreenManager works.

MozReview-Commit-ID: KBo7ZLFTjM3

--HG--
rename : widget/gtk/nsScreenManagerGtk.cpp => widget/gtk/ScreenHelperGTK.cpp
rename : widget/gtk/nsScreenManagerGtk.h => widget/gtk/ScreenHelperGTK.h
extra : rebase_source : 5607e31b62c928934cc45df7b2212428fbfd79c1
2017-03-09 19:29:44 +08:00
Carsten "Tomcat" Book
c1edc7067d merge mozilla-inbound to mozilla-central a=merge 2017-03-13 15:22:26 +01:00