chore: bump chromium to 119.0.6045.0 (main) (#40076)
* chore: bump chromium in DEPS to 119.0.6045.0 * chore: update patches * 4864948: Remove legacy-legacy4864948
* 4907760: Remove ui/base/glib/glib_signal.h4907760
--------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
This commit is contained in:
parent
83a928f6e3
commit
8f7a48879e
34 changed files with 472 additions and 173 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "base/functional/bind.h"
|
||||
#include "shell/browser/ui/gtk/menu_util.h"
|
||||
#include "ui/base/models/menu_model.h"
|
||||
|
||||
|
@ -15,8 +16,9 @@ MenuGtk::MenuGtk(ui::MenuModel* model)
|
|||
: menu_model_(model), gtk_menu_(TakeGObject(gtk_menu_new())) {
|
||||
if (menu_model_) {
|
||||
BuildSubmenuFromModel(menu_model_, gtk_menu_,
|
||||
G_CALLBACK(OnMenuItemActivatedThunk),
|
||||
&block_activation_, this);
|
||||
base::BindRepeating(&MenuGtk::OnMenuItemActivated,
|
||||
base::Unretained(this)),
|
||||
&block_activation_, &signals_);
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "ui/base/glib/glib_signal.h"
|
||||
#include "ui/base/glib/scoped_gobject.h"
|
||||
#include "ui/base/glib/scoped_gsignal.h"
|
||||
|
||||
typedef struct _GtkMenu GtkMenu;
|
||||
typedef struct _GtkWidget GtkWidget;
|
||||
|
@ -31,12 +31,13 @@ class MenuGtk {
|
|||
|
||||
private:
|
||||
// Callback for when a menu item is activated.
|
||||
CHROMEG_CALLBACK_0(MenuGtk, void, OnMenuItemActivated, GtkWidget*);
|
||||
void OnMenuItemActivated(GtkWidget* menu_item);
|
||||
|
||||
raw_ptr<ui::MenuModel> menu_model_; // not owned
|
||||
ScopedGObject<GtkWidget> gtk_menu_;
|
||||
|
||||
bool block_activation_ = false;
|
||||
std::vector<ScopedGSignal> signals_;
|
||||
};
|
||||
|
||||
} // namespace electron::gtkui
|
||||
|
|
|
@ -109,8 +109,8 @@ GtkWidget* AppendMenuItemToMenu(int index,
|
|||
GtkWidget* menu_item,
|
||||
GtkWidget* menu,
|
||||
bool connect_to_activate,
|
||||
GCallback item_activated_cb,
|
||||
void* this_ptr) {
|
||||
MenuActivatedCallback item_activated_cb,
|
||||
std::vector<ScopedGSignal>* signals) {
|
||||
// Set the ID of a menu item.
|
||||
// Add 1 to the menu_id to avoid setting zero (null) to "menu-id".
|
||||
g_object_set_data(G_OBJECT(menu_item), "menu-id", GINT_TO_POINTER(index + 1));
|
||||
|
@ -118,7 +118,7 @@ GtkWidget* AppendMenuItemToMenu(int index,
|
|||
// Native menu items do their own thing, so only selectively listen for the
|
||||
// activate signal.
|
||||
if (connect_to_activate) {
|
||||
g_signal_connect(menu_item, "activate", item_activated_cb, this_ptr);
|
||||
signals->emplace_back(menu_item, "activate", item_activated_cb);
|
||||
}
|
||||
|
||||
// AppendMenuItemToMenu is used both internally when we control menu creation
|
||||
|
@ -158,9 +158,9 @@ void ExecuteCommand(ui::MenuModel* model, int id) {
|
|||
|
||||
void BuildSubmenuFromModel(ui::MenuModel* model,
|
||||
GtkWidget* menu,
|
||||
GCallback item_activated_cb,
|
||||
MenuActivatedCallback item_activated_cb,
|
||||
bool* block_activation,
|
||||
void* this_ptr) {
|
||||
std::vector<ScopedGSignal>* signals) {
|
||||
std::map<int, GtkWidget*> radio_groups;
|
||||
GtkWidget* menu_item = nullptr;
|
||||
for (size_t i = 0; i < model->GetItemCount(); ++i) {
|
||||
|
@ -221,7 +221,7 @@ void BuildSubmenuFromModel(ui::MenuModel* model,
|
|||
GtkWidget* submenu = gtk_menu_new();
|
||||
ui::MenuModel* submenu_model = model->GetSubmenuModelAt(i);
|
||||
BuildSubmenuFromModel(submenu_model, submenu, item_activated_cb,
|
||||
block_activation, this_ptr);
|
||||
block_activation, signals);
|
||||
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu);
|
||||
|
||||
// Update all the menu item info in the newly-generated menu.
|
||||
|
@ -247,7 +247,7 @@ void BuildSubmenuFromModel(ui::MenuModel* model,
|
|||
|
||||
g_object_set_data(G_OBJECT(menu_item), "model", model);
|
||||
AppendMenuItemToMenu(i, model, menu_item, menu, connect_to_activate,
|
||||
item_activated_cb, this_ptr);
|
||||
item_activated_cb, signals);
|
||||
|
||||
menu_item = nullptr;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include "base/functional/callback.h"
|
||||
#include "ui/base/glib/scoped_gsignal.h"
|
||||
#include "ui/gfx/image/image.h"
|
||||
|
||||
namespace ui {
|
||||
|
@ -17,6 +19,8 @@ class MenuModel;
|
|||
|
||||
namespace electron::gtkui {
|
||||
|
||||
using MenuActivatedCallback = base::RepeatingCallback<void(GtkWidget*)>;
|
||||
|
||||
// Builds GtkImageMenuItems.
|
||||
GtkWidget* BuildMenuItemWithImage(const std::string& label, GtkWidget* image);
|
||||
GtkWidget* BuildMenuItemWithImage(const std::string& label,
|
||||
|
@ -32,8 +36,8 @@ GtkWidget* AppendMenuItemToMenu(int index,
|
|||
GtkWidget* menu_item,
|
||||
GtkWidget* menu,
|
||||
bool connect_to_activate,
|
||||
GCallback item_activated_cb,
|
||||
void* this_ptr);
|
||||
MenuActivatedCallback item_activated_cb,
|
||||
std::vector<ScopedGSignal>* signals);
|
||||
|
||||
// Gets the ID of a menu item.
|
||||
// Returns true if the menu item has an ID.
|
||||
|
@ -47,9 +51,9 @@ void ExecuteCommand(ui::MenuModel* model, int id);
|
|||
// See comments in definition of SetMenuItemInfo for more info.
|
||||
void BuildSubmenuFromModel(ui::MenuModel* model,
|
||||
GtkWidget* menu,
|
||||
GCallback item_activated_cb,
|
||||
MenuActivatedCallback item_activated_cb,
|
||||
bool* block_activation,
|
||||
void* this_ptr);
|
||||
std::vector<ScopedGSignal>* signals);
|
||||
|
||||
// Sets the check mark, enabled/disabled state and dynamic labels on menu items.
|
||||
void SetMenuItemInfo(GtkWidget* widget, void* block_activation_ptr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue