Sfoglia il codice sorgente

Revert "Switch to FLTK's copy() method for menus"

This reverts commit e95412569b
and commit 52a18150a7.

The copy() method unfortunately has its own problems so it was not
a good replacement.
tags/v1.4.90
Pierre Ossman 9 anni fa
parent
commit
b5b0ea5771
2 ha cambiato i file con 30 aggiunte e 69 eliminazioni
  1. 2
    12
      vncviewer/OptionsDialog.cxx
  2. 28
    57
      vncviewer/Viewport.cxx

+ 2
- 12
vncviewer/OptionsDialog.cxx Vedi File

@@ -724,19 +724,9 @@ void OptionsDialog::createInputPage(int tx, int ty, int tw, int th)

menuKeyChoice = new Fl_Choice(LBLLEFT(tx, ty, 150, CHOICE_HEIGHT, _("Menu key")));

Fl_Menu_Item items[getMenuKeySymbolCount() + 2];

memset(items, 0, sizeof(items));

items[0].text = strdup(_("None"));
items[0].flags = FL_MENU_DIVIDER;

menuKeyChoice->add(_("None"), 0, NULL, (void*)0, FL_MENU_DIVIDER);
for (int i = 0; i < getMenuKeySymbolCount(); i++)
items[i+1].text = strdup(getMenuKeySymbols()[i].name);

items[getMenuKeySymbolCount()+1].text = NULL;

menuKeyChoice->copy(items);
menuKeyChoice->add(getMenuKeySymbols()[i].name, 0, NULL, 0, 0);

ty += CHOICE_HEIGHT + TIGHT_MARGIN;


+ 28
- 57
vncviewer/Viewport.cxx Vedi File

@@ -24,7 +24,6 @@
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <stdint.h>

#include <rfb/CMsgWriter.h>
#include <rfb/LogWriter.h>
@@ -1061,69 +1060,41 @@ void Viewport::handleFLTKKeyPress(void)

void Viewport::initContextMenu()
{
size_t i;
Fl_Menu_Item items[] = {
{ strdup(_("E&xit viewer")), 0, NULL, (void*)ID_EXIT, FL_MENU_DIVIDER },
contextMenu->clear();
contextMenu->add(_("E&xit viewer"), 0, NULL, (void*)ID_EXIT, FL_MENU_DIVIDER);

#ifdef HAVE_FLTK_FULLSCREEN
{ strdup(_("&Full screen")), 0, NULL, (void*)ID_FULLSCREEN, FL_MENU_TOGGLE },
contextMenu->add(_("&Full screen"), 0, NULL, (void*)ID_FULLSCREEN,
FL_MENU_TOGGLE | (window()->fullscreen_active()?FL_MENU_VALUE:0));
#endif
{ strdup(_("Resize &window to session")), 0, NULL, (void*)ID_RESIZE, FL_MENU_DIVIDER },

{ strdup(_("&Ctrl")), 0, NULL, (void*)ID_CTRL, FL_MENU_TOGGLE },
{ strdup(_("&Alt")), 0, NULL, (void*)ID_ALT, FL_MENU_TOGGLE },

{ strdup("Menu key"), 0, NULL, (void*)ID_MENUKEY, 0 },
{ strdup("Secret shortcut menu key"), menuKeyCode, NULL, (void*)ID_MENUKEY, FL_MENU_INVISIBLE },
{ strdup(_("Send Ctrl-Alt-&Del")), 0, NULL, (void*)ID_CTRLALTDEL, FL_MENU_DIVIDER },

{ strdup(_("&Refresh screen")), 0, NULL, (void*)ID_REFRESH, FL_MENU_DIVIDER },

{ strdup(_("&Options...")), 0, NULL, (void*)ID_OPTIONS, 0 },
{ strdup(_("Connection &info...")), 0, NULL, (void*)ID_INFO, 0 },
{ strdup(_("About &TigerVNC viewer...")), 0, NULL, (void*)ID_ABOUT, FL_MENU_DIVIDER },

{ strdup(_("Dismiss &menu")), 0, NULL, (void*)ID_DISMISS, 0 },

{0}
};

// Update any state
for (i = 0;i < sizeof(items)/sizeof(items[0]);i++) {
switch ((intptr_t)items[i].user_data_) {
contextMenu->add(_("Resize &window to session"), 0, NULL, (void*)ID_RESIZE,
#ifdef HAVE_FLTK_FULLSCREEN
case ID_FULLSCREEN:
if (window()->fullscreen_active())
items[i].flags |= FL_MENU_VALUE;
break;
case ID_RESIZE:
if (window()->fullscreen_active())
items[i].flags |= FL_MENU_INACTIVE;
break;
(window()->fullscreen_active()?FL_MENU_INACTIVE:0) |
#endif
case ID_CTRL:
if (menuCtrlKey)
items[i].flags |= FL_MENU_VALUE;
break;
case ID_ALT:
if (menuAltKey)
items[i].flags |= FL_MENU_VALUE;
break;
case ID_MENUKEY:
// The menu key needs to have its fields updated, or the entries hidden
if (!menuKeySym)
items[i].flags |= FL_MENU_INACTIVE | FL_MENU_INVISIBLE;
else if (!(items[i].flags & FL_MENU_INVISIBLE)) {
char sendMenuKey[64];
snprintf(sendMenuKey, 64, _("Send %s"), (const char *)menuKey);
free((void*)items[i].text);
items[i].text = strdup(sendMenuKey);
}
break;
}
FL_MENU_DIVIDER);

contextMenu->add(_("&Ctrl"), 0, NULL, (void*)ID_CTRL,
FL_MENU_TOGGLE | (menuCtrlKey?FL_MENU_VALUE:0));
contextMenu->add(_("&Alt"), 0, NULL, (void*)ID_ALT,
FL_MENU_TOGGLE | (menuAltKey?FL_MENU_VALUE:0));

if (menuKeySym) {
char sendMenuKey[64];
snprintf(sendMenuKey, 64, _("Send %s"), (const char *)menuKey);
contextMenu->add(sendMenuKey, 0, NULL, (void*)ID_MENUKEY, 0);
contextMenu->add("Secret shortcut menu key", menuKeyCode, NULL, (void*)ID_MENUKEY, FL_MENU_INVISIBLE);
}

contextMenu->copy(items);
contextMenu->add(_("Send Ctrl-Alt-&Del"), 0, NULL, (void*)ID_CTRLALTDEL, FL_MENU_DIVIDER);

contextMenu->add(_("&Refresh screen"), 0, NULL, (void*)ID_REFRESH, FL_MENU_DIVIDER);

contextMenu->add(_("&Options..."), 0, NULL, (void*)ID_OPTIONS, 0);
contextMenu->add(_("Connection &info..."), 0, NULL, (void*)ID_INFO, 0);
contextMenu->add(_("About &TigerVNC viewer..."), 0, NULL, (void*)ID_ABOUT, FL_MENU_DIVIDER);

contextMenu->add(_("Dismiss &menu"), 0, NULL, (void*)ID_DISMISS, 0);
}



Loading…
Annulla
Salva