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

Side by Side Diff: chrome/browser/views/tab_contents/tab_contents_view_gtk.cc

Issue 400012: Refactor the keyboard events handling code related to RenderViewHostDelegate:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
2 // source code is governed by a BSD-style license that can be found in the 2 // source code is governed by a BSD-style license that can be found in the
3 // LICENSE file. 3 // LICENSE file.
4 4
5 #include "chrome/browser/views/tab_contents/tab_contents_view_gtk.h" 5 #include "chrome/browser/views/tab_contents/tab_contents_view_gtk.h"
6 6
7 #include <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 9
10 #include "app/gfx/canvas_paint.h" 10 #include "app/gfx/canvas_paint.h"
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 tab_contents()->delegate()->TabContentsFocused(tab_contents()); 307 tab_contents()->delegate()->TabContentsFocused(tab_contents());
308 } 308 }
309 309
310 void TabContentsViewGtk::TakeFocus(bool reverse) { 310 void TabContentsViewGtk::TakeFocus(bool reverse) {
311 // This is called when we the renderer asks us to take focus back (i.e., it 311 // This is called when we the renderer asks us to take focus back (i.e., it
312 // has iterated past the last focusable element on the page). 312 // has iterated past the last focusable element on the page).
313 gtk_widget_child_focus(GTK_WIDGET(GetTopLevelNativeWindow()), 313 gtk_widget_child_focus(GTK_WIDGET(GetTopLevelNativeWindow()),
314 reverse ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD); 314 reverse ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD);
315 } 315 }
316 316
317 bool TabContentsViewGtk::HandleKeyboardEvent(
318 const NativeWebKeyboardEvent& event) {
319 // The renderer returned a keyboard event it did not process. This may be
320 // a keyboard shortcut that we have to process.
321 if (event.type != WebInputEvent::RawKeyDown)
322 return false;
323
324 views::FocusManager* focus_manager =
325 views::FocusManager::GetFocusManagerForNativeView(GetNativeView());
326 // We may not have a focus_manager at this point (if the tab has been switched
327 // by the time this message returned).
328 if (!focus_manager)
329 return false;
330
331 bool shift_pressed = (event.modifiers & WebInputEvent::ShiftKey) ==
332 WebInputEvent::ShiftKey;
333 bool ctrl_pressed = (event.modifiers & WebInputEvent::ControlKey) ==
334 WebInputEvent::ControlKey;
335 bool alt_pressed = (event.modifiers & WebInputEvent::AltKey) ==
336 WebInputEvent::AltKey;
337
338 return focus_manager->ProcessAccelerator(
339 views::Accelerator(static_cast<base::KeyboardCode>(event.windowsKeyCode),
340 shift_pressed, ctrl_pressed, alt_pressed));
341 // DANGER: |this| could be deleted now!
342
343 // Note that we do not handle Gtk mnemonics/accelerators or binding set here
344 // (as it is done in BrowserWindowGtk::HandleKeyboardEvent), as we override
345 // Gtk behavior completely.
346 }
347
348 void TabContentsViewGtk::ShowContextMenu(const ContextMenuParams& params) { 317 void TabContentsViewGtk::ShowContextMenu(const ContextMenuParams& params) {
349 // Allow delegates to handle the context menu operation first. 318 // Allow delegates to handle the context menu operation first.
350 if (tab_contents()->delegate()->HandleContextMenu(params)) 319 if (tab_contents()->delegate()->HandleContextMenu(params))
351 return; 320 return;
352 321
353 context_menu_.reset(new RenderViewContextMenuWin(tab_contents(), params)); 322 context_menu_.reset(new RenderViewContextMenuWin(tab_contents(), params));
354 context_menu_->Init(); 323 context_menu_->Init();
355 324
356 gfx::Point screen_point(params.x, params.y); 325 gfx::Point screen_point(params.x, params.y);
357 views::View::ConvertPointToScreen(GetRootView(), &screen_point); 326 views::View::ConvertPointToScreen(GetRootView(), &screen_point);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 gboolean TabContentsViewGtk::OnMouseMove(GtkWidget* widget, 407 gboolean TabContentsViewGtk::OnMouseMove(GtkWidget* widget,
439 GdkEventMotion* event) { 408 GdkEventMotion* event) {
440 if (sad_tab_ != NULL) 409 if (sad_tab_ != NULL)
441 WidgetGtk::OnMotionNotify(widget, event); 410 WidgetGtk::OnMotionNotify(widget, event);
442 else if (tab_contents()->delegate()) 411 else if (tab_contents()->delegate())
443 tab_contents()->delegate()->ContentsMouseEvent( 412 tab_contents()->delegate()->ContentsMouseEvent(
444 tab_contents(), views::Screen::GetCursorScreenPoint(), true); 413 tab_contents(), views::Screen::GetCursorScreenPoint(), true);
445 return FALSE; 414 return FALSE;
446 } 415 }
447 416
OLDNEW
« no previous file with comments | « chrome/browser/views/tab_contents/tab_contents_view_gtk.h ('k') | chrome/browser/views/tab_contents/tab_contents_view_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698