Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:wolfi323:branches:openSUSE:13.2:Update
kdebase4-workspace
kwin-add-cursor-resolving-alternatives.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kwin-add-cursor-resolving-alternatives.patch of Package kdebase4-workspace
diff --git a/kwin/cursor.cpp b/kwin/cursor.cpp index a1287a5..aeb2a0a 100644 --- a/kwin/cursor.cpp +++ b/kwin/cursor.cpp @@ -259,6 +259,102 @@ xcb_cursor_t X11Cursor::createCursor(Qt::CursorShape shape) const int size = XcursorGetDefaultSize(display()); XcursorImage *ximg = XcursorLibraryLoadImage(name.constData(), theme, size); if (!ximg) { + static const QHash<QByteArray, QVector<QByteArray> > alternatives = { + {QByteArray("left_ptr"), {QByteArray("arrow"), + QByteArray("dnd-none"), + QByteArray("op_left_arrow")}}, + {QByteArray("cross"), {QByteArray("crosshair"), + QByteArray("diamond-cross"), + QByteArray("cross-reverse")}}, + {QByteArray("up_arrow"), {QByteArray("center_ptr"), + QByteArray("sb_up_arrow"), + QByteArray("centre_ptr")}}, + {QByteArray("wait"), {QByteArray("watch"), + QByteArray("progress")}}, + {QByteArray("ibeam"), {QByteArray("xterm"), + QByteArray("text")}}, + {QByteArray("size_all"), {QByteArray("fleur")}}, + {QByteArray("pointing_hand"), {QByteArray("hand2"), + QByteArray("hand"), + QByteArray("hand1"), + QByteArray("pointer"), + QByteArray("e29285e634086352946a0e7090d73106"), + QByteArray("9d800788f1b08800ae810202380a0822")}}, + {QByteArray("size_ver"), {QByteArray("00008160000006810000408080010102"), + QByteArray("sb_v_double_arrow"), + QByteArray("v_double_arrow"), + QByteArray("n-resize"), + QByteArray("s-resize"), + QByteArray("col-resize"), + QByteArray("top_side"), + QByteArray("bottom_side"), + QByteArray("base_arrow_up"), + QByteArray("base_arrow_down"), + QByteArray("based_arrow_down"), + QByteArray("based_arrow_up")}}, + {QByteArray("size_hor"), {QByteArray("028006030e0e7ebffc7f7070c0600140"), + QByteArray("sb_h_double_arrow"), + QByteArray("h_double_arrow"), + QByteArray("e-resize"), + QByteArray("w-resize"), + QByteArray("row-resize"), + QByteArray("right_side"), + QByteArray("left_side")}}, + {QByteArray("size_bdiag"), {QByteArray("fcf1c3c7cd4491d801f1e1c78f100000"), + QByteArray("fd_double_arrow"), + QByteArray("bottom_left_corner"), + QByteArray("top_right_corner")}}, + {QByteArray("size_fdiag"), {QByteArray("c7088f0f3e6c8088236ef8e1e3e70000"), + QByteArray("bd_double_arrow"), + QByteArray("bottom_right_corner"), + QByteArray("top_left_corner")}}, + {QByteArray("whats_this"), {QByteArray("d9ce0ab605698f320427677b458ad60b"), + QByteArray("left_ptr_help"), + QByteArray("help"), + QByteArray("question_arrow"), + QByteArray("dnd-ask"), + QByteArray("5c6cd98b3f3ebcb1f9c7f1c204630408")}}, + {QByteArray("split_h"), {QByteArray("14fef782d02440884392942c11205230"), + QByteArray("size_hor")}}, + {QByteArray("split_v"), {QByteArray("2870a09082c103050810ffdffffe0204"), + QByteArray("size_ver")}}, + {QByteArray("forbidden"), {QByteArray("03b6e0fcb3499374a867c041f52298f0"), + QByteArray("circle"), + QByteArray("dnd-no-drop"), + QByteArray("not-allowed")}}, + {QByteArray("left_ptr_watch"), {QByteArray("3ecb610c1bf2410f44200f48c40d3599"), + QByteArray("00000000000000020006000e7e9ffc3f"), + QByteArray("08e8e1c95fe2fc01f976f1e063a24ccd")}}, + {QByteArray("openhand"), {QByteArray("9141b49c8149039304290b508d208c40"), + QByteArray("all_scroll"), + QByteArray("all-scroll")}}, + {QByteArray("closedhand"), {QByteArray("05e88622050804100c20044008402080"), + QByteArray("4498f0e0c1937ffe01fd06f973665830"), + QByteArray("9081237383d90e509aa00f00170e968f"), + QByteArray("fcf21c00b30f7e3f83fe0dfd12e71cff")}}, + {QByteArray("dnd-link"), {QByteArray("link"), + QByteArray("alias"), + QByteArray("3085a0e285430894940527032f8b26df"), + QByteArray("640fb0e74195791501fd1ed57b41487f"), + QByteArray("a2a266d0498c3104214a47bd64ab0fc8")}}, + {QByteArray("dnd-copy"), {QByteArray("copy"), + QByteArray("1081e37283d90000800003c07f3ef6bf"), + QByteArray("6407b0e94181790501fd1e167b474872"), + QByteArray("b66166c04f8c3109214a4fbd64a50fc8")}}, + {QByteArray("dnd-move"), {QByteArray("move")}} + }; + auto it = alternatives.find(name); + if (it != alternatives.end()) { + const auto &names = it.value(); + for (auto cit = names.begin(); cit != names.end(); ++cit) { + ximg = XcursorLibraryLoadImage((*cit).constData(), theme, size); + if (ximg) { + break; + } + } + } + } + if (!ximg) { return XCB_CURSOR_NONE; } xcb_cursor_t cursor = XcursorImageLoadCursor(display(), ximg);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor