Commit Graph

101 Commits

Author SHA1 Message Date
Jeff Gilbert
70a22b2878 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Masayuki Nakano
adb1bb8c07 Bug 900750 - part 2: Make ModifierKeyState and VirtualKey treat AltGraph as new modifier and won't set Control and Alt state while AltGraph is active r=m_kato,smaug
By the proposal from Google, <https://github.com/w3c/uievents/issues/147>,
Chromium treat AltRight key as "AltGraph" modifier if the keyboard layout
has AltGr key.

When AltRight key is pressed with a keyboard layout which has AltGr key,
modifiers should as following:

1. "keydown" for ControlLeft:
  ctrlKey:  true, altKey: false, getModifierState("AltGraph"): false
2. "keydown" for AltRight:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
3. Some "keydown", "keypress" and "keyup" events:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
4. "keyup" for ControlLeft:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
5. "keyup" for AltRight:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): false

So, only when the preceding "keydown" event for ControlLeft, ctrlKey should
be set to true as usual.  However, after AltRight key is pressed actually,
we should treat "AltGraph" modifier is true and both ctrlKey and altKey
should be set to false for web apps can handle text input normally.

So, MODIFIER_ALTGRAPH and MODIFIER_CONTROL/MODIFIER_ALT should not be set
at the same time.

This patch makes ModifierKeyState have only MODIFIER_ALTGRAPH or
MODIFIER_CONTROL/MODIFIER_ALT.

Additionally, this patch makes VirtualKey::ShiftState treat "AltGraph" as a
modifier.  So, now, VirtualKey needs to convert ShiftState to index value when
it accesses its mShiftStates array.  Therefore, this patch adds
VirtualKey::ToIndex() and make each VirtualKey method use it before
accessing mShiftStates.

Note that this patch also fixes bug of WinUtils::SetupKeyModifiersSequence().
The constructor of KeyPair takes 2 keycode values, but the second virtual
keycode can have scancode to distinguish if the key is left or right.
However, WinUtils::SetupKeyModifiersSequence() never sets scancode to
KeyPair.  Therefore, it fails to dispatch AltRight key event.

MozReview-Commit-ID: 7ealxJH9KlZ
2018-05-30 17:27:31 +09:00
Xidorn Quan
e4b77a5e78 Bug 1460116 - Remove ShouldHideScrollbars. r=jimm
MozReview-Commit-ID: 7v6Eylefk4t
2018-05-09 11:40:58 +10:00
Bob Owen
22a737144b Bug 1447019 Part 2: Move running from a network drive check into WinUtils. r=jimm 2018-03-27 14:09:32 +01:00
Boris Zbarsky
72b3558850 Bug 1446711 part 7. Switch the nsIDOMMouseEvent::MOZ_SOURCE_* constants over to MouseEventBinding. r=qdot
We can't include MouseEventBinding.h in MouseEvents.h because that produces
this include loop:

MouseEventBinding.h -> UIEventBinding.h ->
nsGlobalWindow.h -> nsGlobalWindowInner.h -> nsRefreshDriver.h ->
AnimationEventDispatcher.h -> AnimationComparator.h -> Animation.h ->
EffectCompositor.h -> PseudoElementHashEntry.h -> Element.h ->
PointerEventHandler.h -> MouseEvents.h -> MouseEventBinding.h

MozReview-Commit-ID: 6FNksGil7uD
2018-03-20 00:16:06 -04:00
Xidorn Quan
8c98a5de5c Bug 1443397 - Modernize several rect and region related functions in Windows widget to use typed types. r=jimm
Mostly just convert nsInt{Rect,Region} to LayoutDeviceInt{Rect,Region}.

One exception is to change the parameter of nsWindow::OnResize from
nsIntRect to LayoutDeviceIntSize, because it really only needs that.

MozReview-Commit-ID: 963Mzd5Wed6
2018-03-06 17:20:41 +11:00
Makoto Kato
3be5442d13 Bug 1390097 - Revert a part of bug 1354020 changes. r=masayuki
Bug 1354020 causes that IMM-IME on Windows 7 doesn't work with --no-remote.  Although I think that this issue is OS or IME bug, when default window proceduce by RegisterClass is DefaultWindowProcW, Google Japanese IME doesn't work.

I am not sure why this issue occurs when lpfnWndProc is DefWidnowProcW and DDE isn't started.  But for workaround, we should revert a part of bug 1354020 changes.

MozReview-Commit-ID: BkxlZnm8mIh
2017-08-23 12:59:40 +09:00
Bill McCloskey
9ed705fc5d Bug 1384336 - Fix to MainThreadInvoker to avoid deadlocks (r=aklotz)
When removing our Windows message loop pumping code in the content
process, a11y code on the MTA thread must have some way to wake up the
main thread. The main thread could be blocked either on a conditional
variable waiting for a Gecko event, or it could be blocked waiting on
a Windows HANDLE in IPC code (doing a sync message send). In the
former case, we wake it up by posting an event to the main thread. In
the latter case, we continue to use the asynchronous procedure call
mechanism.

MozReview-Commit-ID: FN6KWaGo9Zl
2017-08-09 21:24:20 -07:00
Samael Wang
1aff9b7383 Bug 1350643 - Part 6.1: Extract getting DPI logic from LogToPhysFactor & SystemScaleFactor to provide new functions MonitorDPI & SystemDPI. r=jimm
MozReview-Commit-ID: E9mXvFMM3pA
2017-06-16 01:11:41 +08:00
Bob Owen
c7fabf278d Bug 1369670 Part 2: On Windows resolve junction points and symlinks in any paths that are used for sandbox policy rules. r=jimm 2017-06-23 16:29:15 +01:00
Wes Kocher
49744bb69d Backed out 2 changesets (bug 1369670) for Mn failures in test_capabilities.py on Windows 8 a=backout
Backed out changeset 46db8ae423f2 (bug 1369670)
Backed out changeset e9b7d6dbc698 (bug 1369670)

MozReview-Commit-ID: GL05REhJM2k
2017-06-23 11:48:12 -07:00
Bob Owen
7210826487 Bug 1369670 Part 2: On Windows resolve junction points and symlinks in any paths that are used for sandbox policy rules. r=jimm 2017-06-23 16:29:15 +01:00
Aaron Klotz
8910842b15 Bug 1323069: Widget changes to facilitate returning a11y::LazyInstantiator in response to WM_GETOBJECT; r=jimm
MozReview-Commit-ID: JXbxr4tWEST
2017-06-15 17:29:07 -06:00
Wei-Cheng Pan
09a22b1960 Bug 1354143 - Commit jump list on lazy idle thread. r=florian,jimm
Since committing will do IO on the main thread, it would be better to do it on
an idle thread instead. We have to change JavaScript code too because now the
API is asynchrous.

This patch also updates its xpcshell test.

Now mozilla::widget::AsyncDeleteAllFaviconsFromDisk will get profile directory
on the main thread to prevent it happens on off-main-threads, thus prevents
off-main-thread assertion.

MozReview-Commit-ID: CWcR0B2BC3n
2017-05-24 16:38:57 +08:00
Chris Pearce
3545b99284 Bug 1346620 - Resolve symlinks and junction points in path to GMP dir when loading GMP process. r=bobowen
The sandbox blocks loading of GMPs when the GMP resides in a directory stored
in a path which contains a symlink or junction point. So resolve GMP paths
fully before instantiating the GMP process.

MozReview-Commit-ID: EvPCpNIDNwg
2017-06-09 15:29:46 +12:00
Masayuki Nakano
61ebe4ab74 Bug 1370198 Back out the patch for bug 1369419 because the patch couldn't fix bug 1361132 and causes new crash bugs r=jimm
MozReview-Commit-ID: Eq7Dkk6Ghwc
2017-06-05 21:52:16 +09:00
Masayuki Nakano
874fe4d456 Bug 1369419 GetMessage() and PeekMessage() shouldn't be used directly as far as possible r=jimm
In TSF mode, application should retrieve messages with ITfMessagePump::GetMessage() or ITfMessagePump::PeekMessage() since TSF/TIP may handle the message before or after the host application handles it.

This patch rewrites the API users with WinUtils::(Get|Peek)Message() which use ITfMessagePump if it's available.

MozReview-Commit-ID: LwHIgp7SxLH
2017-06-02 12:02:35 +09:00
Masatoshi Kimura
87a1e96935 Bug 1354020 - Use per-monitor v2 on Creators Update. r=jfkthame
MozReview-Commit-ID: FiO3DupULFu
2017-04-07 07:14:14 +09:00
Makoto Kato
bbf4de1ded Bug 1337299 - Remove old version compatibility into WinUtils. r=jimm
MozReview-Commit-ID: IBnnslpinzq
2017-02-10 12:06:23 +09:00
Benjamin Smedberg
d1c8ee1d1b Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj
MozReview-Commit-ID: ARS1aTugYjl
2017-01-23 09:24:01 -05:00
Ting-Yu Chou
e9fdb7b400 Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan
MozReview-Commit-ID: JOrzksTzwVT
2016-12-16 16:00:43 +08:00
Aaron Klotz
b27f5db2c9 Bug 1304883: Modify mscom::MainThreadInvoker and Win32 widget to use atomic boolean to flag pending APCs; r=jimm
MozReview-Commit-ID: 7fXoDkBEd2V
2016-09-22 15:07:01 -06:00
Ho-Pang Hsu
bf445bf2ce Bug 1258808 - Part 2: Enhance Widget for Windows (Widget). r=smaug, f=btseng 2016-09-01 16:12:15 +08:00
Makoto Kato
cad2015fb2 Bug 1288595 - Guard DPI_AWARENESS_CONTEXT defines against Windows SDK beta (10.0.14383.0). r=jfkthame
MozReview-Commit-ID: 6CMZ3mVhWd5
2016-07-22 12:43:15 +09:00
Thomas Zimmermann
ba133ac07a Bug 1265386: Fix white-space errors in widget/, r=nfroyd
MozReview-Commit-ID: ATXI7dYFHmA
2016-07-22 10:56:13 +02:00
Carsten "Tomcat" Book
49865a8de6 Backed out changeset 2bea1e1e403d (bug 1265386) for bustage on a CLOSED TREE 2016-07-21 13:59:02 +02:00
Thomas Zimmermann
4fa3fb2bb5 Bug 1265386: Fix white-space errors in widget/, r=nfroyd
MozReview-Commit-ID: ATXI7dYFHmA
2016-07-21 13:29:30 +02:00
Jonathan Kew
7112c7dae3 Bug 1270954 - When Win10 Anniversary Update APIs are available, enable automatic scaling of the non-client area when a window is on a secondary display with different DPI. r=emk, a=kwierso 2016-07-14 17:46:26 +01:00
Jonathan Kew
b064057993 Bug 1254026 - When Win10 dpi-awareness-context APIs are available, run the Open File and Save As dialogs as system-dpi-aware windows, so that they are auto-scaled by the system appropriately for any secondary display's resolution. r=emk 2016-07-01 23:42:32 +01:00
Jonathan Watt
80a104b4e7 Bug 1265953, part 2 - Convert much of the rest of the widget code from nsAutoPtr to UniquePtr. r=mstange 2016-04-19 21:51:25 +01:00
Jonathan Kew
c7373934de Bug 1264196 - Use the DPI from the parent window, if any, for consistency between popups and their owners when straddling a monitor boundary. r=emk 2016-04-13 14:40:46 +01:00
Aaron Klotz
21a7f4f6b7 Bug 1240315: Add startup crash report annotation for AppInit_DLLs; r=jimm 2016-01-16 14:09:28 -07:00
Bob Owen
0cec7ba3b2 Bug 1236680 Part 1: Add new WinUtils function to Resolve moved Users folder. r=jimm 2016-02-09 15:22:43 +00:00
Jonathan Kew
c92f01422f Bug 1242720 - Use (non-dynamic) resolution from GetDeviceCaps when dealing with native-theme code that does not handle dynamic changes to system DPI. r=emk 2016-01-28 15:08:33 +00:00
Jonathan Kew
492e14ee2f Bug 890156 - patch 3 - Remove gfxWindowsPlatform::GetDPIScale and replace it with methods in WinUtils, ready for per-monitor DPI support. r=emk 2015-12-02 15:09:29 +00:00
Nicholas Nethercote
6f043f6b6e Bug 1229237 (part 3) - Make nsIWidget::Invalidate() take a LayoutDeviceIntRect. r=botond. 2015-11-16 21:18:31 -08:00
Nathan Froyd
c868222a91 Bug 1222149 - delete unused fields from AsyncEncodeAndWriteIcon; r=roc
clang-cl says these are unused, so let's delete them.
2015-11-05 14:19:20 -05:00
Nathan Froyd
dd5a328e65 Bug 1218488 - clarify buffer ownership for nsICanvasRenderingContextInternal::GetBuffer; r=Bas,baku
This patch started life as making ImageEncoder.cpp:EncodingRunnable not
use nsAutoArrayPtr, but the API effects rippled out from there.  On the
whole, I think using UniquePtr throughout has made the code clearer.
2015-10-26 14:31:12 -04:00
Masayuki Nakano
d36f87a852 Bug 895274 part.3 Make the enum of event messages a named enum IGNORE IDL r=smaug 2015-08-26 21:56:59 +09:00
Maksim Lebedev
e5baeed8f4 Bug 1137555 - Add implementation of PuppetWidget::GetMaxTouchPoints(). r=smaug, r=jimm 2015-05-08 03:29:00 +02:00
Nicolas Silva
d73f54cb00 Bug 1155621 - Make nsIntRect and nsIntPoint typedefs of mozilla::gfx::IntRect and mozilla::gfx::IntPoint. r=Bas 2015-04-21 17:04:57 +02:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Mason Chang
37bb8f9d19 Bug 1127151. Part 1: Expose dwmFlush to winutils. r=jrmuizel 2015-02-13 17:17:23 +08:00
Jim Mathies
be167acdf9 Bug 1095754 - Move InvalidatePluginAsWorkaround from nsWindow to WinUtils so the compositor can access it. r=aklotz 2015-01-29 13:41:54 -06:00
Ehsan Akhgari
2acefe2331 Bug 1117264 - Mark virtual overridden functions as MOZ_OVERRIDE in dom/base code; r=baku 2015-01-06 11:52:45 -05:00
Aaron Klotz
2ce085ab5e Bug 1072752: Make Chromium UI message loops for Windows call into WinUtils::WaitForMessage; r=jimm 2014-09-25 12:39:15 -06:00
Jim Mathies
0b7643f743 Bug 1052395 - Improve ipc debug output for unhandled nonqueued Windows messages. r=bent 2014-08-12 14:06:00 -05:00
Ehsan Akhgari
dfc4108682 Bug 1038411 - Give myDownloadObserver a private destructor; r=mak 2014-07-16 13:21:23 -04:00
Ehsan Akhgari
9e14a05aa0 Backed out changeset 32d47282044f (bug 1038411) because of build bustage on CLOSED TREE 2014-07-15 15:31:15 -04:00
Ehsan Akhgari
a4ccdf3139 Bug 1038164 - Give some classes in WinUtils.h private destructors; r=bjacob 2014-07-15 14:56:01 -04:00