| @@ -255,7 +255,7 @@ namespace XRender | |||
| static tXRenderFindFormat xRenderFindFormat = nullptr; | |||
| static tXRenderFindVisualFormat xRenderFindVisualFormat = nullptr; | |||
| static bool isAvailable(::Display* display) | |||
| static bool isAvailable (::Display* display) | |||
| { | |||
| static bool hasLoaded = false; | |||
| @@ -292,13 +292,13 @@ namespace XRender | |||
| return xRenderQueryVersion != nullptr; | |||
| } | |||
| static bool hasCompositingWindowManager(::Display* display) noexcept | |||
| static bool hasCompositingWindowManager (::Display* display) noexcept | |||
| { | |||
| return display != nullptr | |||
| && XGetSelectionOwner (display, Atoms::getCreating ("_NET_WM_CM_S0")) != 0; | |||
| } | |||
| static XRenderPictFormat* findPictureFormat(::Display* display) | |||
| static XRenderPictFormat* findPictureFormat (::Display* display) | |||
| { | |||
| ScopedXLock xlock (display); | |||
| XRenderPictFormat* pictFormat = nullptr; | |||
| @@ -2214,14 +2214,19 @@ public: | |||
| { | |||
| updateKeyModifiers ((int) buttonPressEvent.state); | |||
| switch (pointerMap [buttonPressEvent.button - Button1]) | |||
| auto mapIndex = (uint32) (buttonPressEvent.button - Button1) | |||
| if (mapIndex < numElementsInArray (pointerMap)) | |||
| { | |||
| case Keys::WheelUp: handleWheelEvent (buttonPressEvent, 50.0f / 256.0f); break; | |||
| case Keys::WheelDown: handleWheelEvent (buttonPressEvent, -50.0f / 256.0f); break; | |||
| case Keys::LeftButton: handleButtonPressEvent (buttonPressEvent, ModifierKeys::leftButtonModifier); break; | |||
| case Keys::RightButton: handleButtonPressEvent (buttonPressEvent, ModifierKeys::rightButtonModifier); break; | |||
| case Keys::MiddleButton: handleButtonPressEvent (buttonPressEvent, ModifierKeys::middleButtonModifier); break; | |||
| default: break; | |||
| switch (pointerMap[mapIndex]) | |||
| { | |||
| case Keys::WheelUp: handleWheelEvent (buttonPressEvent, 50.0f / 256.0f); break; | |||
| case Keys::WheelDown: handleWheelEvent (buttonPressEvent, -50.0f / 256.0f); break; | |||
| case Keys::LeftButton: handleButtonPressEvent (buttonPressEvent, ModifierKeys::leftButtonModifier); break; | |||
| case Keys::RightButton: handleButtonPressEvent (buttonPressEvent, ModifierKeys::rightButtonModifier); break; | |||
| case Keys::MiddleButton: handleButtonPressEvent (buttonPressEvent, ModifierKeys::middleButtonModifier); break; | |||
| default: break; | |||
| } | |||
| } | |||
| clearLastMousePos(); | |||
| @@ -2234,12 +2239,17 @@ public: | |||
| if (parentWindow != 0) | |||
| updateWindowBounds(); | |||
| switch (pointerMap [buttonRelEvent.button - Button1]) | |||
| auto mapIndex = (uint32) (buttonRelEvent.button - Button1) | |||
| if (mapIndex < numElementsInArray (pointerMap)) | |||
| { | |||
| case Keys::LeftButton: currentModifiers = currentModifiers.withoutFlags (ModifierKeys::leftButtonModifier); break; | |||
| case Keys::RightButton: currentModifiers = currentModifiers.withoutFlags (ModifierKeys::rightButtonModifier); break; | |||
| case Keys::MiddleButton: currentModifiers = currentModifiers.withoutFlags (ModifierKeys::middleButtonModifier); break; | |||
| default: break; | |||
| switch (pointerMap[mapIndex]) | |||
| { | |||
| case Keys::LeftButton: currentModifiers = currentModifiers.withoutFlags (ModifierKeys::leftButtonModifier); break; | |||
| case Keys::RightButton: currentModifiers = currentModifiers.withoutFlags (ModifierKeys::rightButtonModifier); break; | |||
| case Keys::MiddleButton: currentModifiers = currentModifiers.withoutFlags (ModifierKeys::middleButtonModifier); break; | |||
| default: break; | |||
| } | |||
| } | |||
| if (dragState->dragging) | |||
| @@ -3678,7 +3688,7 @@ private: | |||
| Array<Atom> srcMimeTypeAtomList; | |||
| int pointerMap[5]; | |||
| int pointerMap[5] = {}; | |||
| void initialisePointerMap() | |||
| { | |||
| @@ -3730,13 +3740,13 @@ namespace WindowingHelpers | |||
| if (! juce_handleXEmbedEvent (nullptr, &event)) | |||
| #endif | |||
| { | |||
| if (LinuxComponentPeer* const peer = LinuxComponentPeer::getPeerFor (event.xany.window)) | |||
| if (auto* peer = LinuxComponentPeer::getPeerFor (event.xany.window)) | |||
| peer->handleWindowMessage (event); | |||
| } | |||
| } | |||
| else if (event.xany.type == KeymapNotify) | |||
| { | |||
| const XKeymapEvent& keymapEvent = (const XKeymapEvent&) event.xkeymap; | |||
| auto& keymapEvent = (const XKeymapEvent&) event.xkeymap; | |||
| memcpy (Keys::keyStates, keymapEvent.key_vector, 32); | |||
| } | |||
| } | |||