Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1146)

Side by Side Diff: ui/ozone/platform/wayland/wayland_connection.cc

Issue 2639053002: [ozone/wayland] Implement basic keyboard handling support (Closed)
Patch Set: addressed kpschoedel's review Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/ozone/platform/wayland/wayland_connection.h" 5 #include "ui/ozone/platform/wayland/wayland_connection.h"
6 6
7 #include <xdg-shell-unstable-v5-client-protocol.h> 7 #include <xdg-shell-unstable-v5-client-protocol.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 LOG(ERROR) << "Failed to get wl_pointer from seat"; 220 LOG(ERROR) << "Failed to get wl_pointer from seat";
221 return; 221 return;
222 } 222 }
223 connection->pointer_ = base::MakeUnique<WaylandPointer>( 223 connection->pointer_ = base::MakeUnique<WaylandPointer>(
224 pointer, base::Bind(&WaylandConnection::DispatchUiEvent, 224 pointer, base::Bind(&WaylandConnection::DispatchUiEvent,
225 base::Unretained(connection))); 225 base::Unretained(connection)));
226 } 226 }
227 } else if (connection->pointer_) { 227 } else if (connection->pointer_) {
228 connection->pointer_.reset(); 228 connection->pointer_.reset();
229 } 229 }
230 if (capabilities & WL_SEAT_CAPABILITY_KEYBOARD) {
231 if (!connection->keyboard_) {
232 wl_keyboard* keyboard = wl_seat_get_keyboard(connection->seat_.get());
233 if (!keyboard) {
234 LOG(ERROR) << "Failed to get wl_keyboard from seat";
235 return;
236 }
237 connection->keyboard_ = base::MakeUnique<WaylandKeyboard>(
238 keyboard, base::Bind(&WaylandConnection::DispatchUiEvent,
239 base::Unretained(connection)));
240 }
241 } else if (connection->keyboard_) {
242 connection->keyboard_.reset();
243 }
230 connection->ScheduleFlush(); 244 connection->ScheduleFlush();
231 } 245 }
232 246
233 // static 247 // static
234 void WaylandConnection::Name(void* data, wl_seat* seat, const char* name) {} 248 void WaylandConnection::Name(void* data, wl_seat* seat, const char* name) {}
235 249
236 // static 250 // static
237 void WaylandConnection::Ping(void* data, xdg_shell* shell, uint32_t serial) { 251 void WaylandConnection::Ping(void* data, xdg_shell* shell, uint32_t serial) {
238 WaylandConnection* connection = static_cast<WaylandConnection*>(data); 252 WaylandConnection* connection = static_cast<WaylandConnection*>(data);
239 xdg_shell_pong(shell, serial); 253 xdg_shell_pong(shell, serial);
240 connection->ScheduleFlush(); 254 connection->ScheduleFlush();
241 } 255 }
242 256
243 } // namespace ui 257 } // namespace ui
OLDNEW
« no previous file with comments | « ui/ozone/platform/wayland/wayland_connection.h ('k') | ui/ozone/platform/wayland/wayland_keyboard.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698