Граф коммитов

89 Коммитов

Автор SHA1 Сообщение Дата
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 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
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
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
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
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
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
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
Sebastian Hengst 579ea8c74c Backed out changeset 8c45140a2819 (bug 1343802) 2017-03-27 18:00:18 +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
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 ea5dc4dafd bug 1324256 consider scrollbar trough borders even for GTK versions < 3.20 r=jhorak+328198
This is needed for GTK themes with non-zero trough-border such as Greybird.

MozReview-Commit-ID: 8ERxq5Nia6F

--HG--
extra : rebase_source : 5e235b6ae9aab334b57a1f669c835eecbb6563fa
2017-01-09 19:33:27 +13:00
Jan Horak c2721a5026 Bug 1310850 - Zero scrollbar size could also happen when running GTK 3.20 so we need to set the minimum size of the scrollbar to the minimum size of a thumb. r=karlt
--HG--
extra : rebase_source : eb3ebb6c343dfb09f6d8723f22d76f32f3d7da72
2016-10-25 11:27:00 -04:00
Carsten "Tomcat" Book bc8b0b30ea Backed out changeset 67c74a5cfcda (bug 1310850) for bustage 2016-10-25 10:17:34 +02:00
Jan Horak 06cdc2c9fc Bug 1310850 - Zero scrollbar size could also happen when running GTK 3.20 so we need to set the minimum size of the scrollbar to the minimum size of a thumb. r=karlt
--HG--
extra : rebase_source : e18b10da33322c2e4d936694f66788f3002669a2
2016-10-20 02:40:00 +02:00
Karl Tomlinson 19ee6ebe3b bug 1311604 consider block flow direction in vertical writing mode native widget layout r=jfkthame
This follows the same approach of considering block flow for all widgets
(in addition to resizers) as done for other toolkits in
https://hg.mozilla.org/mozilla-central/rev/4a65cacf8a37#l3.10

MozReview-Commit-ID: Ca3SMs1k2Tj

--HG--
extra : rebase_source : 9845e676aa2db5eecd222b7e8a678b2aecca659e
2016-10-20 17:57:55 +13:00
Jan Horak b1c2f1be2f Bug 1289148 - Fixing scrollbar metrics for GTK >= 3.20 r=karlt
The Gtk 3.20 scrollbars has moved towards usual box model. The scrollbar,
trough,thumb and scrollbar button can now have margin, padding and border set,
different for each direction (ie. left, right, bottom, top). The scrollbar
metrics become ignored in Gtk 3.20 and later.

* Draw scrollbar element [for GTK 3.20+]
* The border for scrollbar, trough, thumb and scrollbar buttons is newly
  calculated as margin+padding+border [for GTK 3.20+].
* The margin is subtracted for scrollbar, trough and sb buttons during paint
  function [for GTK 3.6+]
* All scrollbar widget's borders transfered from
  nsNativeThemeGTK::GetWidgetBorder to the moz_gtk_get_widget_border.
* Added helper function NativeThemeToGtkTheme for mapping mozilla's widget type
  to the gtk widget type.
* Scrollbar troughs are now drawn even when there is not enough room for
  the thumb [GTK 3.20+]

MozReview-Commit-ID: jd2q67gKM1

--HG--
extra : rebase_source : ecc8b85401845113d84c6c5a48219a0c3d4f8de3
2016-10-17 11:37:13 +13:00
Martin Stransky 727a172dcd Bug 1271524 - Move tab widget to WidgetCache. r=acomminos
--HG--
extra : rebase_source : 4f9b654b745934054f0ec2509ec3c21996aa2e68
2016-08-21 23:13:00 -04:00
Lee Salzman 658901461a Bug 1291856 - push clip before drawing GTK3 widgets. r=acomminos
MozReview-Commit-ID: 84Y8sBg7NzF
2016-08-03 20:24:39 -04:00
Andi-Bogdan Postelnicu e47f652b04 Bug 1273423 - removed useless null pointer check on |aFrame|. r=karlt+@karlt.net
MozReview-Commit-ID: 1HCh1pKVUh1

--HG--
extra : rebase_source : 348d3ea21d6dc512dc711e1e82db005db2d9c314
2016-05-23 11:04:51 +03:00
Martin Stransky 97a6dfcff5 Bug 1261576 - render scrollbar thumb as "hovered" to emulate active Gtk thumb style. r=karlt
--HG--
extra : rebase_source : da38d660d48aceaa600ae8bf924c7faa186d9d39
2016-07-11 12:29:00 +02:00
Keith Yeung 28a4bc1e9e Bug 1274339 - Align resizerpanel and caret in -moz-appearance. r=bobbyholley
--HG--
extra : rebase_source : ce28fd34fd7738abf440d6ae6052059ff549f974
2016-05-19 10:58:00 +02:00
Jonathan Kew 72fc68048e Bug 1274368 - Draw resizer as RTL for elements with vertical-rl writing mode. r=dholbert 2016-05-21 13:59:25 +01:00
Karl Tomlinson 50d0eedfba bug 1272194 replace MOZ_TOPLEVEL_MENU_ITEM flag with MOZ_GTK_MENUBARITEM node r=stransky+263117
This provides a better mapping between WidgetNodeType and GtkWidgets.

MozReview-Commit-ID: 3YYzK4aZCbP

--HG--
extra : rebase_source : b2a2dc92b77a265fc73077345c1b6a18d9a4abc5
2016-05-19 16:55:04 +12:00
Keith Yeung 90a39873d8 Bug 1273424 - Rename -moz-appearance keyword constants to be more consistent with CSS keywords. r=bholley 2016-05-18 11:07:47 -07:00
Karl Tomlinson b799dfaa46 bug 1234158 rename GtkThemeWidgetType enum to WidgetNodeType as it will differentiate GTK CSS nodes r=Stránský
--HG--
extra : transplant_source : %11-%01%D8%F3%D6%00%E9%0C%D8%84z%A2%98%7C%F3%B5I%CF%5E
extra : histedit_source : deb6e194d8ea4466976347e24a741ee354dcc331
2016-04-14 17:47:20 +12:00
Martin Stransky c64aea7200 Bug 1263145 - Render multiline input text entries as GtkTextView, r=karlt 2016-04-27 01:07:00 +02:00
Botond Ballo 25a9b005e6 Bug 1255214 - Only repaint GTK scrollbar button if its enablement actually changed. r=mstange
MozReview-Commit-ID: ITLeksQzvVM

--HG--
extra : rebase_source : 1a3779ab7154282388c2e57251886863e818b168
2016-04-20 19:49:09 -04:00
Bill Gianopoulos 5b9122d07b Bug 1262634 - Avoid undefined reference to moz_gtk_get_entry_min_height in builds specifying cairo-gtk2 toolkit. r=karlt
--HG--
extra : histedit_source : 160487a1e3dcfea56c38b88308fbff41724c33b7
2016-04-07 19:25:24 -04:00
Martin Stransky a2db24fb14 Bug 1257811 - set min-height for input widgets. r=karlt 2016-04-01 04:43:00 +02:00
Karl Tomlinson 5c5c74038e bug 1230065 consider arrow size in dropdown minimum widget size r=acomminos
--HG--
extra : rebase_source : 60df83df10ab3fff33e08a2e7a8dd13d7b4c2bf9
2016-03-01 13:12:03 +13:00
Chris Peterson e8cb33d6f7 Bug 1242135 - Annotate intentional and fix unintentional switch fallthroughs in widget/gtk/. r=karlt
widget/gtk/nsNativeThemeGTK.cpp:1032:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
widget/gtk/nsNativeThemeGTK.cpp:1058:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
widget/gtk/nsNativeThemeGTK.cpp:1274:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
widget/gtk/nsNativeThemeGTK.cpp:1718:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]

--HG--
extra : rebase_source : c358f36f66e3707894fd384d060e1b87a3b0f2ca
2016-01-22 22:44:06 -08:00
Lee Salzman 466b5fb4c9 Bug 1239040 - Fix DrawTargetCairo/DrawTargetSkia LockBits and BorrowedXlibDrawable to work inside PushLayer. r=jrmuizel 2016-01-13 13:11:07 -05:00
Jan Horak 5a90e8dbd8 Bug 1205643 - Move scrollbar borders to slider to receive button events. r=karlt 2016-01-06 23:55:00 -05:00
Jan Horak 76cccd6b7d Bug 1205643 - "Wrong scrollbar border prevents scrolling to cursor when mouse is on the screen edge". r=karlt 2015-12-22 05:05:00 +01:00
Nicholas Nethercote 4a551425d8 Bug 1221610 - Remove ToIntMargin(). r=jrmuizel.
It's now a no-op.
2015-11-04 09:40:16 -08:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Andrew Comminos bf63f14959 Bug 1187203 - Implement GtkInfoBar appearance style on GTK3. r=karlt 2015-08-21 16:38:15 -04:00
Petr Jasicek e19231c364 Bug 1160154 - Decrease padding between icons in the personal toolbar with Gtk3 by using "image-button" css style class. r=karlt
CLOSED TREE

--HG--
extra : rebase_source : b8c2ed8403294ac2b1931141794f184af2a11cbd
2015-08-07 01:09:00 -04:00
Andrew Comminos 5bd79fe54d Bug 1187237 - Correct range slider drawing on GTK3. r=karlt
--HG--
extra : rebase_source : 0f3a2416b4ca08c913b51303f69e06b8cd859324
2015-07-30 11:29:00 +02:00
Andrew Comminos 10a8163b58 Bug 1179780 - Render opaque scrollbar troughs in the root viewport on GTK3. r=karlt
--HG--
extra : rebase_source : 2fe41b3c52e1b692e1a18b3c8123fc87569f9a57
2015-07-14 07:35:00 -04:00
Botond Ballo 5c454a43e7 Bug 1177024 - Fix clang warnings-as-errors in GTK3 build. r=karlt
--HG--
extra : source : 22ae9b52ec5b25fab359ff32e04072df6412662e
2015-06-21 15:27:07 -04:00
Andrew Comminos c32ccdaa18 Bug 1171696 - Require room for scrollbar sliders and draw troughs only when there is room for a slider or buttons on GTK. r=karlt
--HG--
extra : rebase_source : 3c9d3ce76209e5ae82164d0271cf93509f4be856
2015-06-17 07:27:00 -04:00