Commit Graph

1325 Commits

Author SHA1 Message Date
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
lochang
9214b56b5a Bug 1406268 - Use rect width/height instead of minimum width/height and clamp the rect on Linux. r=mats
MozReview-Commit-ID: B7KjnO9uaef

--HG--
extra : rebase_source : c4647b31b650dddd90df528ff1ac48f72d92fed5
2017-11-17 14:20:42 +08:00
Martin Stransky
8eafc3d45b Bug 1414212 - Enable titlebar rendering on Gtk+ >= 3.10, r=jhorak
MozReview-Commit-ID: JFmpa8JyHEl

--HG--
extra : rebase_source : 311e1ac327b78e2fe5251a465e120e8aee4df152
2017-11-16 15:18:17 +01:00
Makoto Kato
639e6d2041 bug 1414881 - Detect more resolution icons. r=karlt
I add some resolution icons for HiDPI by bug 1415014.  So we should detect
these resolution icons.  Also, Thunderbird has default256.png, so we should
support it, too.

MozReview-Commit-ID: 6BEgV0usnE2

--HG--
extra : rebase_source : ec1b954e1ee4664f365376202fe6f9158c6a9e3b
2017-11-16 14:08:10 +09:00
Sylvestre Ledru
2fda79adb2 Bug 1416712 - Remove nsPaperPS as it seems to be dead code r=karlt
MozReview-Commit-ID: IWbo6cXDyiy

--HG--
extra : rebase_source : 32259c1324420a81ba18511366f44cd7a7deffb1
2017-11-13 11:24:47 +01:00
Chris Peterson
0e8425b401 Bug 1416164 - Replace NS_ABORT with MOZ_ASSERT_UNREACHABLE. r=froydnj
MozReview-Commit-ID: DRdYlOYqZpN

--HG--
extra : rebase_source : b20fb24abf0f2ce648c12a827532c0dbeefb6c63
2017-10-24 23:52:56 -07:00
Kartikaya Gupta
00ef028ed3 Bug 1416267 - Update gfxContext matrix functions to avoid flip-flopping between float and double matrices. r=jrmuizel
The core of this change is in gfxContext.*:
- change gfxContext::CurrentMatrix() and gfxContext::SetMatrix() to
  return and take a Matrix respectively, instead of converting to
  and from a gfxMatrix (which uses doubles). These functions therefore
  will now match the native representation of the transform in gfxContext.
- add two new functions CurrentMatrixDouble() and SetMatrixDouble() that
  do what the old CurrentMatrix() and SetMatrix() used to do, i.e.
  convert between the float matrix and the double matrix.

The rest of the change is just updating the call sites to avoid round-
tripping between floats and doubles where possible. Call sites that are
hard to fix are migrated to the new XXXDouble functions which preserves
the existing behaviour.

MozReview-Commit-ID: 5sbBpLUus3U
2017-11-10 21:14:09 -05:00
Martin Stransky
13cafd9d37 Bug 1415080 - Rename all 's' prefixed members of nsLookAndFeel as they're not static ones, r=jhorak
MozReview-Commit-ID: 9LHIewRnbAY

--HG--
extra : rebase_source : f0a9b3c7b51bbc21ed8ab4cb5ca419a25fdc2b2e
2017-11-07 10:14:52 +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
8d2317143c Bug 1414774 - Initialize sCSDCloseButton/sCSDMaximizeButton/sCSDMinimizeButton, r=jhorak
MozReview-Commit-ID: 10Yk1gFu0Vk

--HG--
extra : rebase_source : 2fbe514f920e85cb5a857a0f5293edd4f023db06
2017-11-06 11:41:38 +01:00
Lee Bousfield
8b33a0a29e Bug 1398539: Inhibit screensaver with XScreenSaverSuspend r=karlt
MozReview-Commit-ID: LhhpaDaPdaO

--HG--
extra : rebase_source : 6d53031ea8669b15cdf6fad4c55c58624bd54c38
2017-09-13 18:28:51 -06: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
78d7ec139e Bug 1409716 - Remove DetectDisplay() and use DISPLAY env variable or Gdk display manager to detect/open it, r=glandium
For X11 only builds get display from DISPLAY env variable or from command line argument. For Wayland enabled buils use standard gdk_display_manager_open_display() path which respects GDK_BACKEND.

When command line argument --display is given pass it to child process by MOZ_GDK_DISPLAY env variable.

MozReview-Commit-ID: F9jEaJ9SU1p

--HG--
extra : rebase_source : 31cf96bcdfe5c525625aa3742aa74ec674265fe1
2017-10-25 14:53:08 +02:00
Martin Stransky
18f750e4ed Bug 1337369 - [Wayland] Expose moz_container_get_wl_surface() to get MozContainer overlayfrom compositor widget, r=jhorak
MozReview-Commit-ID: 9Q4yJ1W0miE

--HG--
extra : rebase_source : 04371d5b2c71d0a443522a4961f67f41ffb8f6dc
2017-10-24 15:26:48 +02:00
Martin Stransky
bb161ccf56 Bug 1337369 - [Wayland] map/unmap overlay MozContainer wl_surface when running on Wayland, r=jhorak
MozReview-Commit-ID: LewrZIXoPI4

--HG--
extra : rebase_source : 4da6712708a55b2ec32ccb9ee0c14afd56c19661
2017-10-24 14:54:17 +02:00
Martin Stransky
8f9da912c2 Bug 1337369 - [Wayland] add routines to map/unmap wl_surface as overlay for MozContainer, r=jhorak
MozReview-Commit-ID: Jn1fJSMlHnP

--HG--
extra : rebase_source : f89fa1dac6cce3c7bddc339bfd56563e811c30bc
2017-10-24 14:34:45 +02:00
Martin Stransky
fc13010408 Bug 1337369 - [Wayland] query wayland registry to get wl_subcompositor for mozcontainer, r=jhorak
MozReview-Commit-ID: E04hqpFKFhk

--HG--
extra : rebase_source : 2a1a68b6ce3600377d89a8cde0651415ae77124a
2017-10-24 14:06:29 +02:00
Martin Stransky
b64b69ebdb Bug 1412010 - Add missing includes to gtk(3)drawing files, r=jhorak
MozReview-Commit-ID: B1RiTldOenE

--HG--
extra : rebase_source : 195bd1ea9f5c5ee9b744bfadcbe2589d801abb18
2017-10-26 20:14:53 +02:00
Sebastian Hengst
841ee307e6 merge mozilla-central to autoland. r=merge a=merge 2017-10-27 23:32:15 +02:00
Sebastian Hengst
28b1c813ea merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: DasxLYlgq0N
2017-10-27 23:30:52 +02:00
Andrea Marchesini
1e90a67e4d Bug 1412258 - Get rid of ipc/dbus, r=smaug
--HG--
rename : ipc/dbus/DBusConnectionRefPtr.h => netwerk/wifi/DBusHelpers.h
2017-10-27 18:41:40 +02:00
Brad Werth
a2d5d923ea Bug 1403690 Part 4: gtk rearrange header and implementation to keep init and refresh functions together. r=karlt
MozReview-Commit-ID: ERsI916e7zf

--HG--
extra : rebase_source : 970c4b7b482dd4bac9fed51e81f34c370671be3d
2017-10-10 14:12:47 -07: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
Martin Stransky
617b41cac0 Bug 1410885 - Implement border/padding helpers, r=jhorak
MozReview-Commit-ID: 24WU58W43n6

--HG--
extra : rebase_source : efcb94b91790cd3fb4924ffcee2f33baa2c00826
2017-10-23 15:16:02 +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
Sebastian Hengst
d341bac932 Backed out changeset 7636f668f84e (bug 1403690) 2017-10-23 22:05:05 +02:00
Brad Werth
6595065d11 Bug 1403690 Part 4: gtk rearrange header and implementation to keep init and refresh functions together. r=karlt
MozReview-Commit-ID: ERsI916e7zf

--HG--
extra : rebase_source : 6e01cb852a05db87ebe7961773703ead9aee8a57
2017-10-10 14:12:47 -07:00
Sebastian Hengst
a994da18d5 Backed out changeset 349f51081127 (bug 1403690) 2017-10-23 18:21:09 +02:00
Brad Werth
6c5f60148b Bug 1403690 Part 4: gtk rearrange header and implementation to keep init and refresh functions together. r=karlt
MozReview-Commit-ID: ERsI916e7zf

--HG--
extra : rebase_source : 580f72faf7b748644b7d2e25872eb57b929a6be1
2017-10-10 14:12:47 -07:00
Martin Stransky
798f390d6b Bug 1409493 - Load actual CSD config from Gtk+, r=jhorak
MozReview-Commit-ID: GVHGXEk4IN

--HG--
extra : rebase_source : 349fd047f87db10aa3a83404e49552336022d009
2017-10-17 21:19:48 +02:00
Martin Stransky
b8ceb20909 Bug 1409493 - Implement CSD entries for Gtk+ LookAndFeel module, r=jhorak
MozReview-Commit-ID: CXsy9dhgMB9

--HG--
extra : rebase_source : 09265a59b17c612652ac048328681a8098c86846
2017-10-17 21:17:32 +02: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
Martin Stransky
bfa8fde631 Bug 1364843 - Implement MOZ_GTK_HEADER_BAR* theme entries, r=jhorak,karlt
Based on patch by Andrew Comminos [:acomminos] <andrew@comminos.com>

MozReview-Commit-ID: DTVePe1R563

--HG--
extra : rebase_source : 23bea31b34ed95301f840726a1f70378764fdea4
2017-09-19 21:22:45 +02:00
Martin Stransky
984f2babc2 Bug 1364843 - Implement drawing and size query of MOZ_GTK_HEADER_BAR*, r=jhorak
Based on patch by Andrew Comminos [:acomminos] <andrew@comminos.com>

MozReview-Commit-ID: 2d8BgLyOS5u

--HG--
extra : rebase_source : ff4aa230b22a3ae478211330b09f239f36705e12
2017-09-19 21:15:12 +02:00
Martin Stransky
2c1a8317ac Bug 1364843 - Allow MOZ_GTK_HEADER_BAR* widget creation, r=jhorak
Based on patch by Andrew Comminos [:acomminos] <andrew@comminos.com>

MozReview-Commit-ID: 18U3GBrTyVW

--HG--
extra : rebase_source : 7a203d5c4d1856d24f08c2ea42ad4519d283ab73
2017-09-19 20:34:31 +02:00
Martin Stransky
089986546e Bug 1364843 - Implement GtkHeaderBar widgets at WidgetCache, r=jhorak
Based on patch by Andrew Comminos [:acomminos] <andrew@comminos.com>

MozReview-Commit-ID: HzzXDqE0s5n

--HG--
extra : rebase_source : d929e03d7ab84229101b9c11cdb35396547860e4
2017-09-19 18:20:48 +02:00
Martin Stransky
3af9407ecc Bug 1364843 - Added WidgetNodeType entries for GtkHeaderBar implementation, r=jhorak,jimm,karlt
Based on patch by Andrew Comminos [:acomminos] <andrew@comminos.com>

MozReview-Commit-ID: GA3CDhCeqfD

--HG--
extra : rebase_source : 0bdccafcfbd84475442503abb6b2e11b6670c37d
2017-09-19 18:24:13 +02:00
Jan Horak
165fab2f85 Bug 1381815 - fixing dimensions of radio and checkbox for GTK 3.20+; r=karlt
In the GTK < 3.20 the size of radio and checkbox toggle is determined by indicator
spacing and indicator size. By  GTK 3.20+ it is replaced by standard box model
(padding, margin, border). The patch fixes that while keeping the functionality
for older GTK. The values are also cached by similar way as scrollbar metrics
are cached now.

The focus is no longer rendered by GTK but by Mozilla code, so the extra
size for toggles has been removed from GetExtraSizeForWidget and toggles
no longer render focus indicator.

MozReview-Commit-ID: 1Wg5AgHy1Vz

--HG--
extra : rebase_source : 81437f45b7d32555942d21fccc9de4a561d85111
2017-10-10 13:35:56 +02:00
Brendan Dahl
72ed58e8b8 Bug 1399956 - Add basic hard coded GTK theme in headless. r=jrmuizel
Many tests rely on the minimum size of widgets to
be set. Also, the precise size seems to matter for some
tests that have hard coded offsets.

MozReview-Commit-ID: BglZD1cKdY9
2017-10-16 16:15:45 -07:00
Mantaroh Yoshinaga
bea6d05b62 Bug 1185236 - Shorten print job name when GTK version is older than 3.18.2. r=karlt
Since GTK 3.18.2, GTK allows setting job name with more than 255 bytes.
As result, CUPS received the IPP error. (RFC 2911, Section 4.3.1)

This patch will shorten print job name, if runtime GTK version is older than 3.18.2.

MozReview-Commit-ID: EfB87Bvo6hX

--HG--
extra : rebase_source : a070e99c783c471a7bf7d00efb3cc997ff617a5e
2017-10-13 15:48:39 +09:00
Phil Ringnalda
bcec55eabf Backed out 4 changesets (bug 1185236) for Windows build bustage
CLOSED TREE

Backed out changeset eda76603d637 (bug 1185236)
Backed out changeset 2cbe403d5c16 (bug 1185236)
Backed out changeset 0466471b9f67 (bug 1185236)
Backed out changeset 445f1e6fc862 (bug 1185236)

MozReview-Commit-ID: 2nL4nUNNhcs
2017-10-12 19:50:07 -07:00
Mantaroh Yoshinaga
0c17c70a15 Bug 1185236 - Shorten print job name when GTK version is older than 3.18.2. r=karlt
Since GTK 3.18.2, GTK allows setting job name with more than 255 bytes.
As result, CUPS received the IPP error. (RFC 2911, Section 4.3.1)

This patch will shorten print job name, if runtime GTK version is older than 3.18.2.

MozReview-Commit-ID: EfB87Bvo6hX

--HG--
extra : rebase_source : f502cd49b128aecce4d8268783377c46a63ad669
2017-10-13 09:46:39 +09:00
Sebastian Hengst
f7efb5fc2c Merge mozilla-central to mozilla-inbound. r=merge a=merge on a CLOSED TREE 2017-10-12 12:03:15 +02:00
Nicholas Nethercote
c0a1cf9b49 Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen.
This avoids a lot of mismatches between nsAString and char16_t*, thus removing
many getter_Copies() and ToNewUnicode() and get() calls, and generally making
things simpler.

Note: the patch removes GetDefaultPrinterNameFromGlobalPrinters() by simply
inlining it at its two callsites, which is easy with the changed types.

--HG--
extra : rebase_source : 9ab9b3694f093fc9b22c7f8e2394a98674d76c11
2017-10-09 10:08:09 +11:00
Emilio Cobos Álvarez
e808575ca4 Bug 1406631: Remove the color-picker-available system metric. r=xidorn
All our widgets support it with a constant true.

MozReview-Commit-ID: JMEItUsxYWq

--HG--
extra : rebase_source : e7e0a3f83001813239338bc5b3895252e1fb3ea6
2017-10-07 14:06:44 +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
Sebastian Hengst
aa78440a09 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: EE6DcCgHufi
2017-10-09 11:19:20 +02:00
Nicholas Nethercote
8a68e6fb83 Bug 1403868 (part 4) - Reduce tools/profiler/public/*.h to almost nothing in non-MOZ_GECKO_PROFILER builds. r=mstange.
Currently the Gecko Profiler defines a moderate amount of stuff when
MOZ_GECKO_PROFILER is undefined. It also #includes various headers, including
JS ones. This is making it difficult to separate Gecko's media stack for
inclusion in Servo.

This patch greatly simplifies how things are exposed. The starting point is:

- GeckoProfiler.h can be #included unconditionally;

- everything else from the profiler must be guarded by MOZ_GECKO_PROFILER.

In practice this introduces way too many #ifdefs, so the patch loosens it by
adding no-op macros for a number of the most common operations.

The net result is that #ifdefs and macros are used a bit more, but almost
nothing is exposed in non-MOZ_GECKO_PROFILER builds (including
ProfilerMarkerPayload.h and GeckoProfiler.h), and understanding what is exposed
is much simpler than before.

Note also that in BHR, ThreadStackHelper is now entirely absent in
non-MOZ_GECKO_PROFILER builds.
2017-10-04 09:11:18 +11: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
Sebastian Hengst
b29f365446 Backed out changeset f70d6fcdb760 (bug 1406631) for failing color related reftests like layout/reftests/writing-mode/ua-style-sheet-input-color-1.html on Android. r=backout 2017-10-07 20:08:12 +02:00
Emilio Cobos Álvarez
b7befbe6b5 Bug 1406631: Remove the color-picker-available system metric. r=xidorn
All our widgets support it with a constant true.

MozReview-Commit-ID: JMEItUsxYWq

--HG--
extra : rebase_source : a2661dce1ac191fdf098e631cd7878f0215643d5
2017-10-07 14:06:44 +02:00
Chris Coulson
4bb5b5c2f6 Bug 1405267 - Don't stub gdk_window_get_window_type in mozgtk2. r=karlt
--HG--
extra : amend_source : 3be7b98361af506cbf1fc0febd0c7c431a520cd0
2017-10-03 04:58:00 -04:00
Lee Salzman
83b1549723 Bug 1404323 - limit WindowSurfaceX11Image::Commit to clip bounds. r=gankro
MozReview-Commit-ID: 55GbZ2EHdbQ
2017-09-29 23:59:40 -04:00
Brad Werth
fb488ded4b Bug 1401063: Cache remaining gtk window and button colors to eliminate on-demand gtk calls in ::NativeGetColor. r=karlt
MozReview-Commit-ID: HbZqBUG0w7y

--HG--
extra : rebase_source : 0b26c22113c2cda49129006fe933f20719b7a679
2017-09-19 13:00:28 -07:00
Wes Kocher
519bb0922b Merge inbound to central, a=merge
MozReview-Commit-ID: EK8iFR1hSRp
2017-09-18 16:21:01 -07:00
Ryan Hunt
5823900855 Bug 1397083 - Don't use CopySurface when drawing theme with nsNativeThemeGTK. r=lsalzman
CopySurface doesn't respect any existing clips that are applied to the draw
target. It doesn't look like nsNativeThemeGTK uses CopySurface normally, but
when OMTP is enabled the draw target is a DrawTargetCapture which can't
LockBits() which causes us to use CopySurface. This can cause a reftest failure.

MozReview-Commit-ID: 1mYMhQB0r3M

--HG--
extra : rebase_source : d2683dee37ce32049d8daeee786cbb06ba624438
extra : amend_source : 59c48b66f733108636d52047a55889ee0c4e2746
2017-09-13 15:03:34 -04: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
Karl Tomlinson
00beb33110 bug 1396722 remove no-op ReleaseStyleContext() r=stransky+263117
MozReview-Commit-ID: DgKM0wrStrk

--HG--
extra : rebase_source : a26fdc5e5d6c63e21bb98a19ee7bf58042f9b3ba
2017-09-05 09:16:01 +12:00
Karl Tomlinson
648484651d bug 1384701 get system fonts in EnsureInit() which is on main thread even with servo r=manishearth
GTK should be used only from the main thread, but the specific symptom before
this change was that creating a GtkEntry causes
pango_cairo_font_map_get_default() to be called.  This function returns a
different font map on each thread.  The font map is leaked when StyleThreads
are leaked at exit.

Font caches are usually expensive and so using the existing font map on the
main thread is preferable.

A GtkEntry already exists on the main thread, as well as style contexts for
most other system fonts, and so it is more efficient to create these on the
main thread while the style contexts exist.

Doing this also avoids the need for Gecko_nsFont_InitSystem() to hold a global
lock to avoid concurrently calling into GTK through LookAndFeel::GetColor().

MozReview-Commit-ID: DSOwEUeYmtV

--HG--
extra : rebase_source : 971bc565e465b2d2482308006f68451ecaa6e264
2017-09-04 18:29:04 +12:00
Karl Tomlinson
645192c7d9 bug 1384701 get system font name and size from widget style context instead of GtkSettings r=manishearth
gtk_widget_get_settings() returns the same settings for all widgets [1] but
GTK actually uses specific fonts for each widget [2].

[1] https://git.gnome.org/browse/gtk+/tree/gtk/gtkwidget.c?h=3.22.19#n11637
[2] https://git.gnome.org/browse/gtk+/tree/gtk/gtkwidget.c?h=3.22.19#n10334

Changing to GtkStyleContext* will also make this easier to use from code where
the GtkStyleContext exists but not the GtkWidget, such as EnsureInit() in a
future patch.

MozReview-Commit-ID: 3NuTL5wRzm5

--HG--
extra : rebase_source : 8ca2ae009bdf4b15a82106425c98b6be786ad27b
2017-09-04 21:33:21 +12:00
Karl Tomlinson
f800034d87 bug 1384701 remove MOZ_WIDGET_GTK == 2 code from nsLookAndFeel r=manishearth
This old code no longer builds and is superseded by the GTK3 port.
See also bug 1278282.

MozReview-Commit-ID: 9KyrPuNAluv

--HG--
extra : rebase_source : 8d5de061743e0281bf4ed03c68286512e7b492e9
2017-09-04 17:36:17 +12:00
Masayuki Nakano
1166607c92 Bug 1387357 - IMContextWrapper::DispatchCompositionStart() should stop dispatching eCompositionStart if dispatching preceding eKeyDown event causes changing active IM context r=m_kato
If a keydown event handler moves focus like Ctrl+PageDown handler, IM context
may be changed to DISABLED or something.  In such case, native IME would stop
current composition because focus moving in Gecko causes making IME blurred.
However, IMContextWrapper::DispatchCompositionStart() always dispatches
eCompositionStart even in such case.

So, it should stop dispatching eCompositionStart if IME enabled state is
changed during dispatching the preceding keydown event.

Note that this patch moves the setter of mComposingContext from
OnStartCompositionNative() which is a signal listener of "preedit_start" to
DispatchCompositionStart() because if IME starts composition without
"preedit_start" signal, DispatchCompositionStart() will be called but
OnStartCompositionNative() isn't called.  However, this fix needs
mComposingContext.

MozReview-Commit-ID: F3F6NuCOrkJ

--HG--
extra : rebase_source : 513528eba0f29eb9b6ce8c5f47e4badbde9cbdb8
2017-09-04 20:18:43 +09:00
Alastor Wu
6a6ee2a0d7 Bug 1373888 - part3 : rename the topic of the wake lock. r=cpearce
For knowing the wake lock usage more clearly, we should use more specific topic name.

In OSX, you can use "$ pmset -g assertions" to check all the wakelock.
In Windows, using "$ powser -energy" to generate the energy report.

MozReview-Commit-ID: rAXnkxTvLc

--HG--
extra : rebase_source : 42ebf204673d3c913739f64c71c24af20d37c95d
2017-08-29 10:54:28 +08:00
Martin Stransky
4cb65b6801 Bug 1314928 - get link text color by GTK_STATE_FLAG_LINK on Gtk3 >= 3.12, r=karlt
MozReview-Commit-ID: BPR2AgoUx5H

--HG--
extra : rebase_source : c4670cd6b7df84dd00a4d04c3bfc582f917795da
2017-08-25 10:30:28 +02:00
Sebastian Hengst
ef86d4676d Backed out changeset 1f349caf1814 (bug 1314928) for bustage at widget/gtk/nsLookAndFeel.cpp:47: invalid conversion from 'int' to 'GtkStateFlags'. r=backout on a CLOSED TREE 2017-08-25 10:51:20 +02:00
Martin Stransky
572cfb016f Bug 1314928 - get link text color by GTK_STATE_FLAG_LINK on Gtk3 >= 3.12, r=karlt
MozReview-Commit-ID: BPR2AgoUx5H

--HG--
extra : rebase_source : ad688e0f6cbabcc64ebb62f2386f8346b3860855
2017-08-25 10:30:28 +02: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
Nicholas Nethercote
8a72cf2251 Bug 1390428 (part 2, attempt 2) - Remove more nsXPIDLCString local variables. r=erahm.
--HG--
extra : rebase_source : 69d58b0cfb56efc6b03d8e2d7be2ce3c3e6cd843
2017-08-21 20:01:27 +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
Masatoshi Kimura
5b97708fef Bug 1387800 - Remove [deprecated] nsIFilePicker.show(). r=qdot
MozReview-Commit-ID: 81ZkeYdSPVW

--HG--
extra : rebase_source : 2f30565b8d5986ef6265027562f9842d0db2688e
2017-08-06 13:15:31 +09:00
Martin Stransky
9ed3f34e0f Bug 1389133 - don't invalidate style content for missing widgets, r=karlt
MozReview-Commit-ID: 2KfjYGvsiVv

--HG--
extra : rebase_source : 86984393bb22a7708089b5ed6da1201f9458e6e7
2017-08-10 18:07:41 +02:00
Brendan Dahl
02dc1567cd Bug 1387170 - Use custom clipboard constructor instead of singleton. r=jrmuizel
This allows instances of the clipboard to be created (like it
was pre-headless).
2017-08-09 09:49:50 -07:00
Sebastian Hengst
6b897a9aab merge mozilla-central to autoland. r=merge a=merge 2017-09-18 11:36:27 +02:00
Jan Steffens
b9f5c3fac3 Bug 1400175 - Stub gdk_screen_get_monitor_workarea in mozgtk2; r=karlt
MozReview-Commit-ID: 72K6U17JuoK

--HG--
extra : rebase_source : aa07eae27b5c37b204c45237e47d511acf45e2d3
2017-09-15 13:44:14 +02:00
Nicholas Nethercote
1a6f1a62fa Bug 1387381 - Remove nsXPIDLString local variables. r=erahm.
nsXPIDLStrings are marked as VOIDED upon initialization. Most of these local
nsXPIDLString variables are immediately set via getter_Copies(), which will
either assign a string value (using Adopt()) or do SetIsVoid(). These can be
trivially converted to nsString, which will get the same treatment.

The patch suitably converts the remaining nsXPIDLString local variable as well.

--HG--
extra : rebase_source : 5fff9f2c6844559198f601853f8db08564add7d5
2017-08-08 16:07:55 +10:00
Carsten "Tomcat" Book
e54b14cf9a merge mozilla-inbound to mozilla-central a=merge 2017-08-07 12:56:05 +02: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
Manish Goregaokar
b74c4d0f69 Bug 1386915 - Add nsLookAndFeel::NativeInit() virtual call for initializing native-side state; r=jfkthame
MozReview-Commit-ID: 8XKSC1AOI0N
2017-08-06 15:41:08 -07:00
Manish Goregaokar
89df80e7d0 Bug 1386915 - Assert when nsLookAndFeel calls GTK off main thread; r=bholley
MozReview-Commit-ID: 9H9dE02bZel
2017-08-06 15:41:05 -07:00
Karl Tomlinson
7f6c7692a4 bug 1365556 invalidate widget style contexts after their ancestors are set r=stransky+263117
Although this is only known to affect buttons with builtin child widgets, it
is difficult to audit all GTK widgets for similar situations, and so the same
defense is applied to all widgets.

MozReview-Commit-ID: LMVXX3UYqR9

--HG--
extra : rebase_source : d327addad8d2b0e070c6ca86c6e38271c8431a23
2017-08-01 09:17:46 +12: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
Michael Smith
632f364e09 Bug 1373739 - Use ClientLayerManager in headless mode. r=dvander,jrmuizel
This fixes a series of issues uncovered by the Web Platform Tests.

The most immediately noticeable symptom was that, during shutdown, PuppetWidgets
on the client side attempted to delete shadow layers that were never created on
the compositor side. The usage of BasicLayerManager in all other widgets due to
headless mode meant that the PLayerTransactionParent was never initialized with
a layer manager, and thus discarded all transaction messages it received but not
delete layer messages.

The effects of only using BasicLayerManager in headless mode also showed up in
the web platform reftests, which ended up as blank white boxes in e10s mode as
the compositor thread never received paint instructions. Switching over to
using ClientLayerManager in headless mode causes these paint instructions to be
relayed.

In order to make ClientLayerManager work under headless mode, it was necessary
to implement a HeadlessCompositorWidget and hook that up to the CompositorWidget
creation function in widget/gtk. A follow-up patch will be necessary to hook up
the same for the other supported widget platforms.

MozReview-Commit-ID: 8vB3lrxP7iX

--HG--
extra : rebase_source : 4013aa856943c983b44266c4a83436b253bc7ab1
2017-06-21 08:50:02 -07:00
Nicholas Nethercote
72c884bf74 Bug 1384835 (part 3, attempt 2) - Remove the Preferences::Get*CString() variants that return nsAdoptingCString. r=froydnj.
--HG--
extra : rebase_source : d317b25be2ec21d1a60d25da3689e46cdce0b649
2017-07-31 14:28:48 +10: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
Kentaro Hayashi
ef93e64d0d Bug 1382142 - Fix a typo about MOZ_CONTAINER_GET_CLASS definition. r=karlt
There is no side-effects by this commit because this macro definition is
not used in actual implementation.

--HG--
extra : amend_source : 6075bacf7c0e2c10dd66dcfda8e28f16786d58de
2017-07-19 17:01:59 +09: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
3810bc3903 Bug 1350643 - Part 3: Add GetDPI to nsIScreen & ScreenDetails. r=kanru
MozReview-Commit-ID: HEFyuYV26Wy

--HG--
extra : rebase_source : fb172f4ba99ab7119036ddf4ec1b3eeeaead186c
2017-06-06 18:09:34 +08:00
Samael Wang
44adcfaeea Bug 1350643 - Part 2: Use gdk functions to enumerate monitors instead of Xinerama. r=karlt
MozReview-Commit-ID: D9f65oZMBuV

--HG--
extra : rebase_source : e4dfa2ee593b9e06433569aaa8f3ec965fca5f2d
2017-06-06 17:57:54 +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
Blake Kaplan
46f55c55cc Bug 1374862 - Avoid setting gHandled when we don't handle signals. r=masayuki
This avoids a fatal assertion for some key events when focus isn't on a text
input.

MozReview-Commit-ID: Hqr6LNW61Kn

--HG--
extra : rebase_source : adc954fc355044c91dc34e9e689a745da95e78c9
2017-06-20 17:03:09 -07: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
Mats Palmgren
949cb19d0b Bug 1377348 - Make nsLookAndFeel final to allow the compiler to devirtualize some calls. r=tn
MozReview-Commit-ID: 7AoZKsTyb3O
2017-06-30 03:34:15 +02:00
Jed Davis
19ef5c3395 Bug 1360069 - Don't do unnecessary wakelock signaling from content processes. r=gcp
MozReview-Commit-ID: AqKGsWyHuXl

--HG--
extra : rebase_source : 36a30ee2e0ebdd3cfd180958d029d717b7449cd9
2017-04-24 21:19:33 -06:00
Jed Davis
c8c7f64bf6 Bug 1360069 - Deal with the case where WakeLockListener is never instantiated. r=gcp
Otherwise, with the next patch, xpcshell tests crash because
WakeLockListener::Shutdown tries to Release() nullptr.

MozReview-Commit-ID: AmD5b6NUqnP

--HG--
extra : rebase_source : dd856ea37e793a8c40f2baf1eb001f96b4d0ee35
2017-06-27 14:44:39 -07:00
Masayuki Nakano
a9fb7c2f23 Bug 1376407 - part2: Emulate selection when committing composition as collapsed to the end of composition r=m_kato
When you start new composition during converting with Mozc in e10s mode, the following things occur:

1. Mozc commits previous composition.
2. Gecko dispatches eCompositionCommit event.
3. Mozc sets new composition string (skipping composition start signal).
4. Gecko dispatches eCompositionStart and eCompositionChange event.
5. Selection is changed asynchronously.
6. Gecko sets position of IME windows.

At #4, Gecko stores start of composition as selection start, then, trying to adjust it at #5. However, new selection is caret position in new composition string. Therefore, it's not used for the adjustment. This causes that stored composition start offset is always the start of the previous composition (if the previous patch didn't change EnsureToCacheSelection() behavior). So, IMContextWrapper needs to compute proper composition start offset in this case.

The simplest fix is, modifying selection at #2 as which will be occurred in focused editor.  So, this patch makes the selection cache collapsed to the end of committing string.

Note that actual selection may be different if JS changes selection and/or the text in the focused editor. However, it doesn't matter. IMContextWrapper should behave as expected while current composition is active.

MozReview-Commit-ID: 221mDUd8yRP

--HG--
extra : rebase_source : 571b2de85ed6ea1fdadea73b7f95507937cc60e9
2017-06-27 03:11:25 -07:00
Masayuki Nakano
b67cd28522 Bug 1376407 - part1: IMContextWrapper should cache selected string instead of length of selection r=m_kato
IMContextWrapper::EnsureToCacheSelection() always queries actual selection when the caller needs selected string.  However, this may be expensive and this is bad behavior for the following patch because it wants to emulate selection range until receiving next selection change notification.

Therefore, this patch makes IMContextWrapper::Selection store selected string instead of just its length like other native IME handlers

Additionally, this patch renames IMContextWrapper::mSelectedString to IMContextWrapper::mSelectedStringRemovedByComposition for making the difference between it and the new string in Selection clearer.

MozReview-Commit-ID: 3bygvW7sKf4

--HG--
extra : rebase_source : b0835b8c1607ecd647444a4d984980943a6fd570
2017-06-27 02:46:08 -07: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
Alexis Beingessner
adb013669b Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Henri Sivonen
432653453a Bug 1261841 part 2 - Use encoding_rs instead of uconv. r=emk,mystor.
MozReview-Commit-ID: 15Y5GTX98bv
2017-06-13 13:23:23 +03:00
Sebastian Hengst
f3bf820bfd Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Alexis Beingessner
c75211cb95 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
L. David Baron
88370e02d1 Bug 1367576 - Make IsWidgetStateSafe not truncate the bits that it needs to test. r=karlt
This fix a mistake that goes back to the original code from bug 174585
(gecko-dev 9611b23530, 2005-08-20).

(This makes me wonder how important the code is in the first place if it
didn't work correctly.)

MozReview-Commit-ID: B6q0o5n5hDw
2017-06-06 22:27:18 -07:00
L. David Baron
e04a5a47c6 Bug 1367576 - Shrink existing caches to the size that's actually needed. r=karlt
Now that, thanks to bug 1367577, we have the theme constants in an enum,
we can make these arrays smaller rather than assuming that the constants
might use any valid uint8_t value.

MozReview-Commit-ID: A6GjTarVurc
2017-06-06 22:27:18 -07:00
L. David Baron
d1ddf5e48e Bug 1367576 - Cache results of getting GTK widget borders. r=karlt
See comments in the header file.

This also clears out mSafeWidgetStates in ThemeChanged since that seems
like a good thing to do, and marks nsNativeThemeGTK as final.

MozReview-Commit-ID: 5Zne4eGbGlh
2017-06-06 22:27:18 -07:00
L. David Baron
ee1674ecc5 Bug 1367576 - Refactor to allow for caching of some gtk widget padding/border results. r=karlt
This refactors the two nearly-identical callsites into a method so that
I can do caching in that method in the next patch.

Note that there was a slight difference between them in that the
aWidgetFlags parameter to GetGtkWidgetAndState was only passed from one
callsite.  However, given that the aState parameter is null, this
doesn't cause any behavior differences.  (Some controls in
GetGtkWidgetAndState null-check aWidgetFlags and some don't!)

Note also that this makes it always assign a result (often zero).  This
is fine for both callsites; GetWidgetPadding previously assigned zero
right before the call, and GetWidgetBorder did so at the start of the
function (and wasn't modified in between, since it was immediately
before the switch that the modified code is a case in).

MozReview-Commit-ID: IKurwry3UTi
2017-06-06 22:27:17 -07:00
L. David Baron
06ad92ffc6 Bug 1367576 - Remove unused ishtml parameter to moz_gtk_get_widget_border. r=karlt
This was needed for the (now-unused) GTK2 version of the code.

MozReview-Commit-ID: GocgC4OZ76p
2017-06-06 22:27:17 -07:00
Chris H-C
c57d39227d bug 546387 - Don't try to set the GTK clipboard with null items r=karlt
It causes an assert failure in gtk which prints to the console.

MozReview-Commit-ID: A4106Z4rT36

--HG--
extra : rebase_source : 642c94a95cfa3939bc475e9139ee63caa78e3005
2017-05-26 11:50:13 -04:00
Karl Tomlinson
94ab0b4d5c Bug 1368597 label CompositorWidget and WindowSurface as Graphics BUG_COMPONENT r=rhunt
--HG--
extra : rebase_source : 5f2cf496030a5736424e66be1a3b8a53188d5e22
2017-05-30 14:29:22 +12: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
Mats Palmgren
297b9d70e1 Bug 1365614 part 3 - Backout bug 1333482 part 1-9. Removes support for [-webkit-]appearance for now b/c web compat issues. r=bz
MozReview-Commit-ID: IbwWM0FL6HF

--HG--
extra : source : bbb688fe1ba3f5201a190c6e25b693ef7272ea2d
2017-05-21 17:15:00 +08:00
Carsten "Tomcat" Book
00d4ea331d Backed out changeset bbb688fe1ba3 (bug 1365614) 2017-05-22 15:45:31 +02:00
Mats Palmgren
e706869580 Bug 1365614 part 3 - Backout bug 1333482 part 1-9. Removes support for [-webkit-]appearance for now b/c web compat issues. r=bz 2017-05-21 17:15:00 +08:00
Ryan VanderMeulen
96eca59299 Merge m-c to autoland. a=merge 2017-05-19 12:26:48 -04: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
Karl Tomlinson
606fb957aa bug 1319650 draw tab gap with tabpanel style context r=stransky+263117
This is more consistent with moz_gtk_tabpanels_paint() and avoids
modifying the tab style context.

MozReview-Commit-ID: HpKSVrpvO9b

--HG--
extra : rebase_source : f4d4da5dc8419671c8c27586f7b370837311744b
2016-11-29 18:50:20 +13:00
Karl Tomlinson
fb0c2feb3e bug 1319650 mimic gtk_style_context_save() in WidgetStyleCache with a new context r=stransky+263117
This makes balancing with gtk_style_context_restore()/ReleaseStyleContext()
unnecessary, and the style resolution cached in the style contexts is not
invalidated so frequently.

MozReview-Commit-ID: BKwyqoQsjv2

--HG--
extra : rebase_source : 4733d66f8265007555cc17568033ece09e6cb2dc
2016-12-02 12:39:23 +13:00
Karl Tomlinson
ff46e3c8cb bug 1362170 force a style resolution on context creation to set GTK 3.4 theming_engine r=stransky+263117
This works around a GTK bug that led to the default engine being used instead
for the first draw.

MozReview-Commit-ID: 4r48HNUgVBE

--HG--
extra : rebase_source : 83a964e02dba97cb0b52acde6b692d241c03ed57
2016-12-14 19:22:28 +13:00
Brendan Dahl
a071a0f003 Bug 1356681 - Expand headless mode support for linux. r=automatedtester,jrmuizel,kanru
Full Firefox on Linux can now be run with a --headless flag.
This includes seven parts:
1) Running all marionette tests in headless mode.
2) Prevents crashes where Firefox calls into GTK.
3) Adds a headless screen helper which supports changing the headless
screen size with the environment variables MOZ_HEADLESS_WIDTH and
MOZ_HEADLESS_HEIGHT.
4) Supports simulating moving a headless window.
5) Adds a stubbed out nsSound implementation.
6) Supports simulating size mode changes of headless windows.
7) Adds the --headless flag for Firefox.
2017-05-18 17:47:10 -07:00
Brendan Dahl
0dd2fb109f Bug 1353938 - Add a basic clipboard for headless.
Adds a headless clipboard that supports copying
and pasting text.
2017-04-21 15:21:51 -07:00
Sebastian Hengst
d8496d0a1f merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: EjT9dcum69m
2017-04-14 23:56:10 +02:00
Joel Maher
99137683e9 Bug 1355089 - add BUG_COMPONENT to widget/* files. r=mstange,jimm
MozReview-Commit-ID: 49Ug2HTqHnf
2017-04-14 05:54:36 -04:00
Masatoshi Kimura
7e1158fd16 Bug 1356023 - Remove nsIScreenManager.systemDefaultScale. r=jfkthame
MozReview-Commit-ID: 6Ha8XrJBSiU

--HG--
extra : rebase_source : a83a64acf01dc9d1a0593c0ddbff76f74809a79b
2017-04-13 07:20:35 +09:00
Wes Kocher
514e230373 Merge inbound to central, a=merge 2017-04-13 17:24:01 -07:00
Kartikaya Gupta
b4341d2689 Merge m-c to graphics
MozReview-Commit-ID: EGaA6e4loBM
2017-04-13 11:08:02 -04: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
Masatoshi Kimura
6d0441a40a Bug 1352773 - Take into account DefaultScaleOverride in Screen::GetDefaultCSSScaleFactor. r=kanru
MozReview-Commit-ID: EJidy1NH3DX

--HG--
extra : rebase_source : d095c493de0acdd12cebc61b47d406a9547601ed
2017-04-05 22:11:34 +09:00
Masayuki Nakano
61ce5526c6 Bug 1296220 Rename nsIMEUpdatePreference to mozilla::widget::IMEUpdatePreference r=m_kato
MozReview-Commit-ID: 2rIXTlwA6my

--HG--
extra : rebase_source : a51be3edd717092738c2b5e8ccc4f60540712bfd
2017-04-11 21:24:55 +09:00
Martin Stransky
4e48986e78 Bug 1353147 - Allow Gtk+ theme override, r=karlt
Allow to override Gtk+ theme for content process when e10s is enabled.

MozReview-Commit-ID: 1Kd2jLpBavA

--HG--
extra : rebase_source : b45171954ed9168e9d46511d53800044d91e5558
2017-04-04 22:30:12 +02: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
Brendan Dahl
a1f2e12af8 Bug 1338004 - Add headless browser mode. r=jrmuizel, r=ted
Supports creating a windowless browser on Linux without an X server. Most of the
changes are just adding branches to avoid calls in to GTK which calls
into X. Some of the bigger additions were adding a separate headless widget
which implements just enough to render a page. A headless look and
feel were also added since there are many calls into GTK in the platform
specific one.
2017-04-04 10:22:00 -04:00
Wes Kocher
734b25e05c Merge m-c to inbound, a=merge 2017-04-03 14:51:06 -07:00
Martin Stransky
5141ddceb3 Bug 1158076 - postpone nsLookAndFeel module initialization, r=karlt
MozReview-Commit-ID: JY83xiXT1xf

--HG--
extra : rebase_source : a936ca56024f4e5c75830e492038ac2ca1a218ae
2017-03-30 15:03:50 +02:00
Martin Stransky
55a8aace48 Bug 1158076 - add prefs to enable GTK dark themes in each process, r=karlt
Add two new prefs (widget.chrome.allow-gtk-dark-theme and widget.content.allow-gtk-dark-theme) to enable dark
themes in chrome and content when e10s is enabled.

When e10s is disabled then widget.chrome.allow-gtk-dark-theme controls both chrome and web content settings.

That may be a bit confusing but it's going to be here for two releases only (Firefox 57 is going to have e10s enabled by default) and actually matches recent state when only one ENV pref is used for both chrome and web content.

The existing MOZ_ALLOW_GTK_DARK_THEME environment variable is still considered, but, now is like widget.chrome.allow-gtk-dark-theme, no longer affecting separate content processes.

MozReview-Commit-ID: CCwriA66CNj

--HG--
extra : rebase_source : 93e9a504af3e7570f82ddaf0890e374fe939e919
2017-03-31 10:40:07 +02: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
Kan-Ru Chen
21b3e0be8d Bug 1351246 - Check gdk_screen_get_default() for X. r=karlt
MozReview-Commit-ID: FJr7tdu1Rsp

--HG--
extra : rebase_source : 4daa2218f57b86a2fcb9f6b3f582bae7dd65b4a4
2017-03-29 08:29:58 -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
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
Karl Tomlinson
a1f02152df bug 1343802 draw trough centered instead of filling the scrollbar r=jhorak+328198
to follow the behavior of version 3.20 GtkRange's contents_gadget.

MozReview-Commit-ID: BQE6mQqsan8
2017-03-27 20:32:55 +02:00
Karl Tomlinson
a230b9ad53 bug 1343802 consider scrollbar trough min-width/min-height properties r=jhorak+328198
in determining breadth of trough and scrollbar.

MozReview-Commit-ID: 3orNXdv6uZh
2017-03-27 20:32:51 +02:00
Karl Tomlinson
e9f17ddd35 bug 1343802 swap vertical scrollbar button dimensions for horizontal scrollbars r=jhorak+328198
MozReview-Commit-ID: 4fK0hFRWn1p
2017-03-27 20:32:47 +02:00
Karl Tomlinson
a9e3d6db57 bug 1343802 adjust scrollbar track border to prevent thumb expanding to fill available breadth r=jhorak+328198+328198
MozReview-Commit-ID: 7KJGnds0ngL
2017-03-27 20:32:42 +02:00
Karl Tomlinson
35bae617b5 bug 1343802 update notebook_has_tab_gap and scrollbar metrics after theme changes r=jhorak+328198
MozReview-Commit-ID: IRPXNwLe5Ey
2017-03-27 20:32:38 +02:00
Karl Tomlinson
b1ce163df0 bug 1343802 remove have_arrow_scaling, which was always true r=jhorak+328198
MozReview-Commit-ID: AeM2oKoPCTs
2017-03-27 20:32:33 +02:00
Karl Tomlinson
577cadd9fb bug 1343802 remove moz_gtk_get_scrollbar_widget() r=jhorak+328198
This was used with GTK2, but is now unnecessary as discussed in bug 1278282.

moz_gtk_init() is now called from only one place and so will be called only
once.

MozReview-Commit-ID: 2KwJop6qsV9
2017-03-27 20:32:29 +02:00
Karl Tomlinson
4a203a1408 bug 1343802 calculate scrollbar metrics in one place r=jhorak+328198
Changes in behavior are intended to be minimal, but this adds distinct
metrics for horizontal and vertical scrollbars even with GTK versions < 3.20.

Updates on theme changes will be restored in a subsequent patch.

MozReview-Commit-ID: 4vi2nKxCxW7
2017-03-27 20:32:25 +02:00
Karl Tomlinson
1703a0f492 bug 1343802 remove code for native scrollbar thumb border sizes r=jhorak+328198
There is no need to calculate thumb borders because thumb border-box sizes are
determined with GetMinimumWidgetSize, which includes GTK margin, border, and
padding, and the interior border width is irrelevant because thumbs have no
children.

MozReview-Commit-ID: K2N2RBJBRsB
2017-03-27 20:32:20 +02:00
Karl Tomlinson
2af68f54bd bug 1343802 remove unused moz_gtk_enable_style_props r=jhorak+328198
MozReview-Commit-ID: KbAIRCyqmJ8
2017-03-27 20:32:16 +02:00
Sebastian Hengst
334b8a2719 Backed out changeset bc81d40f3290 (bug 1343802) for likely causing bug 1350875 and reviving bug 1332040. r=backout 2017-03-27 18:01:58 +02:00
Sebastian Hengst
b3e4da9f67 Backed out changeset 5dc7564d651b (bug 1343802) 2017-03-27 18:00:23 +02:00
Sebastian Hengst
579ea8c74c Backed out changeset 8c45140a2819 (bug 1343802) 2017-03-27 18:00:18 +02:00
Sebastian Hengst
9baf1aac8b Backed out changeset af279778b154 (bug 1343802) 2017-03-27 18:00:14 +02:00
Sebastian Hengst
2fe77fa5ac Backed out changeset 88ea23ae0627 (bug 1343802) 2017-03-27 18:00:10 +02:00
Sebastian Hengst
0dd66abf1e Backed out changeset 45330fa58671 (bug 1343802) 2017-03-27 18:00:05 +02:00
Sebastian Hengst
34f0350a5c Backed out changeset 9abd87cd2dff (bug 1343802) 2017-03-27 18:00:01 +02:00
Sebastian Hengst
d2abc82e65 Backed out changeset 7abbf6d092eb (bug 1343802) 2017-03-27 17:59:56 +02:00
Sebastian Hengst
80796b26f5 Backed out changeset 22f4dc6bb4db (bug 1343802) 2017-03-27 17:59:52 +02:00
Sebastian Hengst
18de691a0f Backed out changeset db84a68eaaec (bug 1343802) 2017-03-27 17:59:48 +02: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
Kan-Ru Chen
841c421ce8 Bug 1194751 - Part 1. Remove nsIScreenManager::GetNumberOfScreens. r=jimm
It's not used anywhere. Remove it will make removing PScreenManager
easier.

MozReview-Commit-ID: 5dn8kDhTZVl

--HG--
extra : rebase_source : 96b8ddb18deee94ca256bfa118b60ceacfd2d677
2017-03-09 19:16:24 +08:00
Karl Tomlinson
4cf270684e bug 1343802 draw trough centered instead of filling the scrollbar r=jhorak+328198
to follow the behavior of version 3.20 GtkRange's contents_gadget.

MozReview-Commit-ID: BQE6mQqsan8

--HG--
extra : rebase_source : ee0f35da45f3da2248f50ee925fb7f8e9b848636
2017-03-23 18:17:49 +13:00
Karl Tomlinson
36050a07d8 bug 1343802 consider scrollbar trough min-width/min-height properties r=jhorak+328198
in determining breadth of trough and scrollbar.

MozReview-Commit-ID: 3orNXdv6uZh

--HG--
extra : rebase_source : ad840ac199569da2e2fed7aa5e37ecc48a022fe2
2017-03-22 15:53:49 +13:00
Karl Tomlinson
cb62e93514 bug 1343802 swap vertical scrollbar button dimensions for horizontal scrollbars r=jhorak+328198
MozReview-Commit-ID: 4fK0hFRWn1p

--HG--
extra : rebase_source : 5342134f69a210f2afdcd835dbb4bbbde429b506
2017-03-21 20:50:36 +13:00
Karl Tomlinson
2e7cb463b0 bug 1343802 adjust scrollbar track border to prevent thumb expanding to fill available breadth r=jhorak+328198+328198
MozReview-Commit-ID: 7KJGnds0ngL

--HG--
extra : rebase_source : c14cb16e27423f2887348d392c7c37f1aa02082a
2017-03-23 18:31:16 +13:00
Karl Tomlinson
d25338e822 bug 1343802 update notebook_has_tab_gap and scrollbar metrics after theme changes r=jhorak+328198
MozReview-Commit-ID: IRPXNwLe5Ey

--HG--
extra : rebase_source : 1b8a8691b793380421fc01e439050125fdfd71f2
2017-03-21 17:27:41 +13:00
Karl Tomlinson
bf65720820 bug 1343802 remove have_arrow_scaling, which was always true r=jhorak+328198
MozReview-Commit-ID: AeM2oKoPCTs

--HG--
extra : rebase_source : f2013b07ff2f344107fac5e21ac491953f38ecc4
2017-03-21 17:12:34 +13:00
Karl Tomlinson
62cb3af124 bug 1343802 remove moz_gtk_get_scrollbar_widget() r=jhorak+328198
This was used with GTK2, but is now unnecessary as discussed in bug 1278282.

moz_gtk_init() is now called from only one place and so will be called only
once.

MozReview-Commit-ID: 2KwJop6qsV9

--HG--
extra : rebase_source : 5649f34914f03f8285eeaad7937d1ecab853649d
2017-03-21 17:14:55 +13:00
Karl Tomlinson
1acd8cdab1 bug 1343802 calculate scrollbar metrics in one place r=jhorak+328198
Changes in behavior are intended to be minimal, but this adds distinct
metrics for horizontal and vertical scrollbars even with GTK versions < 3.20.

Updates on theme changes will be restored in a subsequent patch.

MozReview-Commit-ID: 4vi2nKxCxW7

--HG--
extra : rebase_source : 5e968126af00a7c1ff0a45d2ba3b46a0a20424be
2017-03-23 18:23:26 +13:00
Karl Tomlinson
713232a30d bug 1343802 remove code for native scrollbar thumb border sizes r=jhorak+328198
There is no need to calculate thumb borders because thumb border-box sizes are
determined with GetMinimumWidgetSize, which includes GTK margin, border, and
padding, and the interior border width is irrelevant because thumbs have no
children.

MozReview-Commit-ID: K2N2RBJBRsB

--HG--
extra : rebase_source : c750cdf9c9722f7796c89b8083bf2bfd32fffcbb
2017-03-08 18:24:19 +13:00
Karl Tomlinson
8abe43df06 bug 1343802 remove unused moz_gtk_enable_style_props r=jhorak+328198
MozReview-Commit-ID: KbAIRCyqmJ8

--HG--
extra : rebase_source : 4b468d9b6bab63a69df389d1a7624272f9ec1a43
2017-03-06 17:19:26 +13:00
Mats Palmgren
2feec4025d Bug 1333482 part 5 - [css-ui] Enable '-moz-appearance' support for some tests. r=dholbert
* * *
[mq]: sssssssss

MozReview-Commit-ID: 4wgnjld1rDt
2017-03-23 22:11:23 -07:00
Karl Tomlinson
b969855019 bug 1346961 draw opaque scrollbar background on outermost scrollbar element even for GTK versions >= 3.20 r=jhorak+328198
MozReview-Commit-ID: BHsD1h4UQbs

--HG--
extra : rebase_source : 56cb7f915cfe1237375e735ca4e41826ac890c82
2017-03-16 18:02:27 +13:00
Carsten "Tomcat" Book
c1edc7067d merge mozilla-inbound to mozilla-central a=merge 2017-03-13 15:22:26 +01: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
Stone Shih
229b4ba331 Bug 606885 - Fire drag events with keyboard modifiers. r=enn
--HG--
extra : rebase_source : c6e4ac37ea2397d86368cb59b0a68aa3a9f43d79
2017-02-17 11:29:42 +08:00
Andy Kluger
be28304603 Use GTK cursors for zoom-in or zoom-out css cursors (bug 1328724) r=karlt
get_gtk_cursor attempts to use themed cursor icons for most css cursor types,
but left these two out. Now it will try to use the theme for these as well,
and fall back to the generic FF set used previously.

MozReview-Commit-ID: 9QHV0mc5AxK

--HG--
extra : rebase_source : c03d01f6dc3a30a8f16def9f95cee14d18f7a8a1
2017-03-08 01:28:47 -05:00
Carsten "Tomcat" Book
78ac0ceba9 merge mozilla-inbound to mozilla-central a=merge 2017-03-08 16:59:42 +01: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
Nitish
600629af0a Bug 1334795 - nsWindow.cpp: remove two redundant return statements at the ends of functions with void return type. r=karlt
MozReview-Commit-ID: G4X2vXT6Eam

--HG--
extra : rebase_source : 98833d7161e29711da6a7f4e60458eec9fa9f3b2
2017-01-29 14:33:14 +05:30