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

Side by Side Diff: chrome/browser/ui/gtk/gtk_util.cc

Issue 9473001: Extract minimal RenderViewHost interface for embedders, leaving (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to LKGR. Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/ui/gtk/gtk_util.h" 5 #include "chrome/browser/ui/gtk/gtk_util.h"
6 6
7 #include <cairo/cairo.h> 7 #include <cairo/cairo.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cstdarg> 10 #include <cstdarg>
(...skipping 1281 matching lines...) Expand 10 before | Expand all | Expand 10 after
1292 gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), FALSE); 1292 gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), FALSE);
1293 } 1293 }
1294 } 1294 }
1295 1295
1296 // Performs Cut/Copy/Paste operation on the |window|. 1296 // Performs Cut/Copy/Paste operation on the |window|.
1297 // If the current render view is focused, then just call the specified |method| 1297 // If the current render view is focused, then just call the specified |method|
1298 // against the current render view host, otherwise emit the specified |signal| 1298 // against the current render view host, otherwise emit the specified |signal|
1299 // against the focused widget. 1299 // against the focused widget.
1300 // TODO(suzhe): This approach does not work for plugins. 1300 // TODO(suzhe): This approach does not work for plugins.
1301 void DoCutCopyPaste(BrowserWindow* window, 1301 void DoCutCopyPaste(BrowserWindow* window,
1302 void (RenderViewHost::*method)(), 1302 void (RenderWidgetHost::*method)(),
1303 const char* signal) { 1303 const char* signal) {
1304 GtkWidget* widget = GetBrowserWindowFocusedWidget(window); 1304 GtkWidget* widget = GetBrowserWindowFocusedWidget(window);
1305 if (widget == NULL) 1305 if (widget == NULL)
1306 return; // Do nothing if no focused widget. 1306 return; // Do nothing if no focused widget.
1307 1307
1308 WebContents* current_tab = GetBrowserWindowSelectedWebContents(window); 1308 WebContents* current_tab = GetBrowserWindowSelectedWebContents(window);
1309 if (current_tab && widget == current_tab->GetContentNativeView()) { 1309 if (current_tab && widget == current_tab->GetContentNativeView()) {
1310 (current_tab->GetRenderViewHost()->*method)(); 1310 (current_tab->GetRenderViewHost()->*method)();
1311 } else { 1311 } else {
1312 guint id; 1312 guint id;
1313 if ((id = g_signal_lookup(signal, G_OBJECT_TYPE(widget))) != 0) 1313 if ((id = g_signal_lookup(signal, G_OBJECT_TYPE(widget))) != 0)
1314 g_signal_emit(widget, id, 0); 1314 g_signal_emit(widget, id, 0);
1315 } 1315 }
1316 } 1316 }
1317 1317
1318 void DoCut(BrowserWindow* window) { 1318 void DoCut(BrowserWindow* window) {
1319 DoCutCopyPaste(window, &RenderViewHost::Cut, "cut-clipboard"); 1319 DoCutCopyPaste(window, &RenderWidgetHost::Cut, "cut-clipboard");
1320 } 1320 }
1321 1321
1322 void DoCopy(BrowserWindow* window) { 1322 void DoCopy(BrowserWindow* window) {
1323 DoCutCopyPaste(window, &RenderViewHost::Copy, "copy-clipboard"); 1323 DoCutCopyPaste(window, &RenderWidgetHost::Copy, "copy-clipboard");
1324 } 1324 }
1325 1325
1326 void DoPaste(BrowserWindow* window) { 1326 void DoPaste(BrowserWindow* window) {
1327 DoCutCopyPaste(window, &RenderViewHost::Paste, "paste-clipboard"); 1327 DoCutCopyPaste(window, &RenderWidgetHost::Paste, "paste-clipboard");
1328 } 1328 }
1329 1329
1330 } // namespace gtk_util 1330 } // namespace gtk_util
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/extensions/extension_view_gtk.cc ('k') | chrome/browser/ui/gtk/infobars/extension_infobar_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698