diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-18 20:25:52 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-18 20:25:52 +0800 |
| commit | eca67e7d2bd227433eb4b47b499cfcc0106a3eaa (patch) | |
| tree | b037f6f2f39ef40b0cfa983ec42efefc87c5d70f /src | |
| parent | 0263f0a3fa0760afae94909700f8f6c52ec7c750 (diff) | |
| download | cru-eca67e7d2bd227433eb4b47b499cfcc0106a3eaa.tar.gz cru-eca67e7d2bd227433eb4b47b499cfcc0106a3eaa.tar.bz2 cru-eca67e7d2bd227433eb4b47b499cfcc0106a3eaa.zip | |
Fix AutoFreePtr.
Diffstat (limited to 'src')
| -rw-r--r-- | src/platform/gui/xcb/Input.cpp | 22 | ||||
| -rw-r--r-- | src/platform/gui/xcb/UiApplication.cpp | 2 | ||||
| -rw-r--r-- | src/platform/gui/xcb/Window.cpp | 16 | ||||
| -rw-r--r-- | src/ui/render/ScrollBar.cpp | 4 |
4 files changed, 22 insertions, 22 deletions
diff --git a/src/platform/gui/xcb/Input.cpp b/src/platform/gui/xcb/Input.cpp index a07697ae..31c21622 100644 --- a/src/platform/gui/xcb/Input.cpp +++ b/src/platform/gui/xcb/Input.cpp @@ -75,7 +75,7 @@ KeyCode XorgKeysymToCruKeyCode(xcb_keysym_t keysym) { } } -std::vector<xcb_keysym_t> XorgKeycodeToKeysyms(XcbUiApplication *application, +std::vector<xcb_keysym_t> XorgKeycodeToKeysyms(XcbUiApplication* application, xcb_keycode_t keycode) { auto connection = application->GetXcbConnection(); auto setup = xcb_get_setup(connection); @@ -84,7 +84,7 @@ std::vector<xcb_keysym_t> XorgKeycodeToKeysyms(XcbUiApplication *application, // Get keyboard mapping auto mapping_cookie = xcb_get_keyboard_mapping(connection, keycode, 1); - auto mapping_reply = AutoFreePtr( + auto mapping_reply = MakeAutoFree( xcb_get_keyboard_mapping_reply(connection, mapping_cookie, NULL)); if (!mapping_reply) { @@ -92,7 +92,7 @@ std::vector<xcb_keysym_t> XorgKeycodeToKeysyms(XcbUiApplication *application, } auto keysyms_per_keycode = mapping_reply->keysyms_per_keycode; - auto *keysyms = xcb_get_keyboard_mapping_keysyms(mapping_reply); + auto* keysyms = xcb_get_keyboard_mapping_keysyms(mapping_reply.get()); std::vector<xcb_keysym_t> result; for (int i = 0; i < keysyms_per_keycode; i++) { @@ -101,7 +101,7 @@ std::vector<xcb_keysym_t> XorgKeycodeToKeysyms(XcbUiApplication *application, return result; } -KeyCode XorgKeycodeToCruKeyCode(XcbUiApplication *application, +KeyCode XorgKeycodeToCruKeyCode(XcbUiApplication* application, xcb_keycode_t keycode) { auto keysyms = XorgKeycodeToKeysyms(application, keycode); @@ -118,10 +118,10 @@ using KeymapBitset = std::bitset<sizeof(std::declval<xcb_query_keymap_reply_t>().keys) * CHAR_BIT>; -KeymapBitset GetXorgKeymap(xcb_connection_t *connection) { +KeymapBitset GetXorgKeymap(xcb_connection_t* connection) { auto keymap_cookie = xcb_query_keymap(connection); auto keymap_reply = - AutoFreePtr(xcb_query_keymap_reply(connection, keymap_cookie, NULL)); + MakeAutoFree(xcb_query_keymap_reply(connection, keymap_cookie, NULL)); if (!keymap_reply) { throw XcbException("Cannot get keymap."); @@ -141,7 +141,7 @@ KeymapBitset GetXorgKeymap(xcb_connection_t *connection) { } // namespace std::unordered_map<KeyCode, bool> GetKeyboardState( - XcbUiApplication *application) { + XcbUiApplication* application) { auto connection = application->GetXcbConnection(); auto setup = xcb_get_setup(connection); auto min_keycode = setup->min_keycode; @@ -150,7 +150,7 @@ std::unordered_map<KeyCode, bool> GetKeyboardState( // Get keyboard mapping auto mapping_cookie = xcb_get_keyboard_mapping(connection, min_keycode, max_keycode - min_keycode + 1); - auto mapping_reply = AutoFreePtr( + auto mapping_reply = MakeAutoFree( xcb_get_keyboard_mapping_reply(connection, mapping_cookie, NULL)); if (!mapping_reply) { @@ -158,7 +158,7 @@ std::unordered_map<KeyCode, bool> GetKeyboardState( } auto keysyms_per_keycode = mapping_reply->keysyms_per_keycode; - auto *keysyms = xcb_get_keyboard_mapping_keysyms(mapping_reply); + auto* keysyms = xcb_get_keyboard_mapping_keysyms(mapping_reply.get()); auto keymap = GetXorgKeymap(connection); @@ -178,7 +178,7 @@ std::unordered_map<KeyCode, bool> GetKeyboardState( } // Though X provides GetModifierMapping, it cannot get ALT state. -KeyModifier GetCurrentKeyModifiers(XcbUiApplication *application) { +KeyModifier GetCurrentKeyModifiers(XcbUiApplication* application) { KeyModifier result{}; auto state = GetKeyboardState(application); if (state[KeyCode::LeftShift] || state[KeyCode::RightShift]) { @@ -214,7 +214,7 @@ KeyModifier ConvertModifiersOfEvent(uint32_t mask) { return result; } -XcbKeyboardManager::XcbKeyboardManager(XcbUiApplication *application) +XcbKeyboardManager::XcbKeyboardManager(XcbUiApplication* application) : application_(application) { xkb_x11_setup_xkb_extension( application->GetXcbConnection(), XKB_X11_MIN_MAJOR_XKB_VERSION, diff --git a/src/platform/gui/xcb/UiApplication.cpp b/src/platform/gui/xcb/UiApplication.cpp index 5aa7c158..5701d726 100644 --- a/src/platform/gui/xcb/UiApplication.cpp +++ b/src/platform/gui/xcb/UiApplication.cpp @@ -89,7 +89,7 @@ xcb_atom_t XcbUiApplication::GetOrCreateXcbAtom(std::string name) { auto cookie = xcb_intern_atom(xcb_connection_, false, name.size(), name.data()); auto reply = - AutoFreePtr(xcb_intern_atom_reply(xcb_connection_, cookie, nullptr)); + MakeAutoFree(xcb_intern_atom_reply(xcb_connection_, cookie, nullptr)); auto atom = reply->atom; xcb_atom_.emplace(std::move(name), atom); return atom; diff --git a/src/platform/gui/xcb/Window.cpp b/src/platform/gui/xcb/Window.cpp index 9e1089c9..6728fbbd 100644 --- a/src/platform/gui/xcb/Window.cpp +++ b/src/platform/gui/xcb/Window.cpp @@ -190,7 +190,7 @@ Rect XcbWindow::GetClientRect() { auto window = *xcb_window_; auto cookie = xcb_get_geometry(application_->GetXcbConnection(), window); - auto reply = AutoFreePtr(xcb_get_geometry_reply( + auto reply = MakeAutoFree(xcb_get_geometry_reply( application_->GetXcbConnection(), cookie, nullptr)); auto position = GetXcbWindowPosition(window); @@ -240,7 +240,7 @@ bool XcbWindow::RequestFocus() { Point XcbWindow::GetMousePosition() { auto window = xcb_window_.value_or(application_->GetFirstXcbScreen()->root); auto cookie = xcb_query_pointer(application_->GetXcbConnection(), window); - auto reply = AutoFreePtr(xcb_query_pointer_reply( + auto reply = MakeAutoFree(xcb_query_pointer_reply( application_->GetXcbConnection(), cookie, nullptr)); return Point(reply->win_x, reply->win_y); } @@ -657,7 +657,7 @@ void XcbWindow::DoSetTitle(xcb_window_t window) { void XcbWindow::DoSetClientRect(xcb_window_t window, const Rect& rect) { auto tree_cookie = xcb_query_tree(application_->GetXcbConnection(), window); - auto tree_reply = AutoFreePtr(xcb_query_tree_reply( + auto tree_reply = MakeAutoFree(xcb_query_tree_reply( application_->GetXcbConnection(), tree_cookie, nullptr)); auto parent_position = GetXcbWindowPosition(tree_reply->parent); @@ -685,15 +685,15 @@ void* XcbWindow::XcbGetProperty(xcb_window_t window, xcb_atom_t property, std::uint32_t* out_length) { auto cookie = xcb_get_property(application_->GetXcbConnection(), false, window, property, type, offset, length); - auto reply = AutoFreePtr( + auto reply = MakeAutoFree( xcb_get_property_reply(application_->GetXcbConnection(), cookie, NULL)); if (reply->type == XCB_ATOM_NONE) { return nullptr; } if (out_length != nullptr) { - *out_length = xcb_get_property_value_length(reply); + *out_length = xcb_get_property_value_length(reply.get()); } - return xcb_get_property_value(reply); + return xcb_get_property_value(reply.get()); } std::optional<Thickness> XcbWindow::Get_NET_FRAME_EXTENTS(xcb_window_t window) { @@ -714,13 +714,13 @@ Point XcbWindow::GetXcbWindowPosition(xcb_window_t window) { while (true) { auto cookie = xcb_get_geometry(application_->GetXcbConnection(), window); - auto reply = AutoFreePtr(xcb_get_geometry_reply( + auto reply = MakeAutoFree(xcb_get_geometry_reply( application_->GetXcbConnection(), cookie, nullptr)); result.x += reply->x; result.y += reply->y; auto tree_cookie = xcb_query_tree(application_->GetXcbConnection(), window); - auto tree_reply = AutoFreePtr(xcb_query_tree_reply( + auto tree_reply = MakeAutoFree(xcb_query_tree_reply( application_->GetXcbConnection(), tree_cookie, nullptr)); window = tree_reply->parent; // TODO: Multi-screen offset? diff --git a/src/ui/render/ScrollBar.cpp b/src/ui/render/ScrollBar.cpp index 4343f15a..79c2ea42 100644 --- a/src/ui/render/ScrollBar.cpp +++ b/src/ui/render/ScrollBar.cpp @@ -339,8 +339,8 @@ void ScrollBar::RestoreCursor() { void ScrollBar::BeginAutoCollapseTimer() { if (!auto_collapse_timer_canceler_ && IsExpanded()) { - auto_collapse_timer_canceler_ = GetUiApplication()->SetTimeout( - kScrollBarAutoCollapseDelay, [this] { this->SetExpanded(false); }); + auto_collapse_timer_canceler_.Reset(GetUiApplication()->SetTimeout( + kScrollBarAutoCollapseDelay, [this] { this->SetExpanded(false); })); } } |
