From 996bb2a855f657dc7b3ae6216adc1d993c6c496b Mon Sep 17 00:00:00 2001 From: Alexander Pyhalov Date: Tue, 28 Feb 2017 13:36:28 +0300 Subject: [PATCH] realvnc-java-client: switch to Java 8 --- .../{ => desktop}/realvnc-java-client/Makefile | 19 +- .../manifests/sample-manifest.p5m | 0 .../patches/realvnc-java-client-01-makefile.patch | 12 +- .../realvnc-java-client-02-applet-html.patch | 0 .../realvnc-java-client-03-use-listener.patch | 210 ++++++++++----------- .../patches/realvnc-java-client-04-highcolor.patch | 192 +++++++++---------- ...realvnc-java-client-05-g11n-use-remote-im.patch | 4 +- .../realvnc-java-client-06-makefile-install.patch | 6 +- .../realvnc-java-client/realvnc-java-client.p5m | 15 +- 9 files changed, 233 insertions(+), 225 deletions(-) rename components/{ => desktop}/realvnc-java-client/Makefile (68%) rename components/{ => desktop}/realvnc-java-client/manifests/sample-manifest.p5m (100%) rename components/{ => desktop}/realvnc-java-client/patches/realvnc-java-client-01-makefile.patch (76%) rename components/{ => desktop}/realvnc-java-client/patches/realvnc-java-client-02-applet-html.patch (100%) rename components/{ => desktop}/realvnc-java-client/patches/realvnc-java-client-03-use-listener.patch (95%) rename components/{ => desktop}/realvnc-java-client/patches/realvnc-java-client-04-highcolor.patch (99%) rename components/{ => desktop}/realvnc-java-client/patches/realvnc-java-client-05-g11n-use-remote-im.patch (99%) rename components/{ => desktop}/realvnc-java-client/patches/realvnc-java-client-06-makefile-install.patch (94%) rename components/{ => desktop}/realvnc-java-client/realvnc-java-client.p5m (50%) diff --git a/components/realvnc-java-client/Makefile b/components/desktop/realvnc-java-client/Makefile similarity index 68% rename from components/realvnc-java-client/Makefile rename to components/desktop/realvnc-java-client/Makefile index 210b5b7e7..1f082ce9f 100644 --- a/components/realvnc-java-client/Makefile +++ b/components/desktop/realvnc-java-client/Makefile @@ -10,13 +10,14 @@ # # -# Copyright 2014 Alexander Pyhalov. All rights reserved. +# Copyright 2017 Alexander Pyhalov # -include ../../make-rules/shared-macros.mk +include ../../../make-rules/shared-macros.mk COMPONENT_NAME= realvnc-java-client COMPONENT_VERSION= 4.1 +COMPONENT_REVISION= 1 COMPONENT_SUMMARY= RealVNC Java Viewer COMPONENT_SRC= vnc-4_1-javasrc COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz @@ -24,11 +25,15 @@ COMPONENT_ARCHIVE_HASH= \ sha256:8fb8843c0be67aef39422ac456c56df4523a14be23eb003664da80a7aff33aa8 COMPONENT_ARCHIVE_URL= \ http://dlc.openindiana.org/oi/jds/downloads/sources/$(COMPONENT_ARCHIVE) -COMPONENT_PROJECT_URL = http://www.realvnc.com +COMPONENT_PROJECT_URL= http://www.realvnc.com +COMPONENT_FMRI= desktop/remote-desktop/realvnc/java-client +COMPONENT_CLASSIFICATION= System/X11 +COMPONENT_LICENSE= GPLv2 +COMPONENT_LICENSE_FILE= LICENCE.txt -include $(WS_TOP)/make-rules/prep.mk -include $(WS_TOP)/make-rules/justmake.mk -include $(WS_TOP)/make-rules/ips.mk +include $(WS_MAKE_RULES)/prep.mk +include $(WS_MAKE_RULES)/justmake.mk +include $(WS_MAKE_RULES)/ips.mk PATH=$(JAVA_HOME)/bin:/usr/gnu/bin:/usr/bin @@ -38,3 +43,5 @@ COMPONENT_INSTALL_ARGS += -C $(BUILD_DIR_32)/java build: $(BUILD_32) install: $(INSTALL_32) + +REQUIRED_PACKAGES += developer/java/openjdk8 diff --git a/components/realvnc-java-client/manifests/sample-manifest.p5m b/components/desktop/realvnc-java-client/manifests/sample-manifest.p5m similarity index 100% rename from components/realvnc-java-client/manifests/sample-manifest.p5m rename to components/desktop/realvnc-java-client/manifests/sample-manifest.p5m diff --git a/components/realvnc-java-client/patches/realvnc-java-client-01-makefile.patch b/components/desktop/realvnc-java-client/patches/realvnc-java-client-01-makefile.patch similarity index 76% rename from components/realvnc-java-client/patches/realvnc-java-client-01-makefile.patch rename to components/desktop/realvnc-java-client/patches/realvnc-java-client-01-makefile.patch index cf54d01d7..351b91899 100644 --- a/components/realvnc-java-client/patches/realvnc-java-client-01-makefile.patch +++ b/components/desktop/realvnc-java-client/patches/realvnc-java-client-01-makefile.patch @@ -3,18 +3,18 @@ @@ -2,7 +2,7 @@ # probably won't work for you! # - + -JAVAC = jikes -classpath .:$$CLASSPATH -+JAVAC = javac -target 1.7 -classpath .:$$CLASSPATH ++JAVAC = javac -target 1.8 -classpath .:$$CLASSPATH JAR = jar INSTALL_DIR = ../unix/java SRCS = $(shell find . -name '*.java' -print 2>/dev/null) @@ -12,7 +12,7 @@ vncviewer.jar: $(SRCS) - $(RM) `find . -name '*.class' -print` - $(JAVAC) -d . $^ + $(RM) `find . -name '*.class' -print` + $(JAVAC) -d . $^ - $(JAR) cmf manifest $@ `find . -name '*.class' -print` + $(JAR) cmf manifest $@ `find . -name '*.class' -print` README - + clean:: - $(RM) `find . -name '*.class' -print` + $(RM) `find . -name '*.class' -print` diff --git a/components/realvnc-java-client/patches/realvnc-java-client-02-applet-html.patch b/components/desktop/realvnc-java-client/patches/realvnc-java-client-02-applet-html.patch similarity index 100% rename from components/realvnc-java-client/patches/realvnc-java-client-02-applet-html.patch rename to components/desktop/realvnc-java-client/patches/realvnc-java-client-02-applet-html.patch diff --git a/components/realvnc-java-client/patches/realvnc-java-client-03-use-listener.patch b/components/desktop/realvnc-java-client/patches/realvnc-java-client-03-use-listener.patch similarity index 95% rename from components/realvnc-java-client/patches/realvnc-java-client-03-use-listener.patch rename to components/desktop/realvnc-java-client/patches/realvnc-java-client-03-use-listener.patch index ff494b17a..c56f2781b 100644 --- a/components/realvnc-java-client/patches/realvnc-java-client-03-use-listener.patch +++ b/components/desktop/realvnc-java-client/patches/realvnc-java-client-03-use-listener.patch @@ -3,27 +3,27 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/AboutDialog.java vnc-4_1-javasrc/j +++ vnc-4_1-javasrc/java/vncviewer/AboutDialog.java 2007-06-27 18:37:00.333341000 +0800 @@ -19,8 +19,9 @@ package vncviewer; - + import java.awt.*; +import java.awt.event.*; - + -class AboutDialog extends vncviewer.Dialog { +class AboutDialog extends vncviewer.Dialog implements ActionListener { - - public AboutDialog() { + + public AboutDialog() { super(false); @@ -35,18 +36,20 @@ - + Panel p2 = new Panel(); okButton = new Button("OK"); + okButton.addActionListener(this); + p2.add(okButton); add("South", p2); - + pack(); } - + - public boolean action(Event event, Object arg) { - if (event.target == okButton) { + public void actionPerformed(ActionEvent e) { @@ -34,24 +34,24 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/AboutDialog.java vnc-4_1-javasrc/j } - return true; } - + Button okButton; diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vncviewer/CConn.java --- vnc-4_1-javasrc.orig/java/vncviewer/CConn.java 2005-03-11 00:55:07.000000000 +0800 +++ vnc-4_1-javasrc/java/vncviewer/CConn.java 2007-06-28 15:55:51.081496000 +0800 @@ -31,6 +31,8 @@ - + package vncviewer; - + +import java.awt.*; +import java.awt.event.*; import java.awt.Component; import java.awt.Dimension; import java.awt.Event; @@ -39,12 +41,13 @@ - + import rfb.SecTypes; - + -class ViewportFrame extends Frame { +class ViewportFrame extends Frame implements WindowListener { public ViewportFrame(String name, CConn cc_) { @@ -61,18 +61,18 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn add(sp); + addWindowListener(this); } - + public void addChild(Component child) { @@ -57,13 +60,20 @@ setLocation(x, y); } - -- public boolean handleEvent(Event event) { + +- public boolean handleEvent(Event event) { - if (event.id == Event.WINDOW_DESTROY) { - cc.close(); -- } +- } - return super.handleEvent(event); -+ //------------------------------------------------------------------ ++ //------------------------------------------------------------------ + // implemented blank methods + public void windowClosed(WindowEvent event){} + public void windowDeiconified(WindowEvent event){} @@ -86,14 +86,14 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn + cc.close(); } - -+ ++ CConn cc; ScrollPane sp; } @@ -372,7 +382,8 @@ - cp.pf().print(), serverPF.print(), - rfb.Encodings.name(currentEncoding), - rfb.Encodings.name(lastUsedEncoding), + cp.pf().print(), serverPF.print(), + rfb.Encodings.name(currentEncoding), + rfb.Encodings.name(lastUsedEncoding), - jis.kbitsPerSecond()+" kbit/s", cp.majorVersion+"."+cp.minorVersion, + jis.kbitsPerSecond()+" kbit/s", + cp.majorVersion+"."+cp.minorVersion, @@ -103,15 +103,15 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn @@ -456,100 +467,103 @@ writer().writeKeyEvent(keysym, down); } - + - synchronized public void writeKeyEvent(Event ev) { - if (ev.id != Event.KEY_PRESS && ev.id != Event.KEY_ACTION) + synchronized public void writeKeyEvent(KeyEvent ev) { + if (ev.getID() != KeyEvent.KEY_PRESSED && !ev.isActionKey()) return; - + int keysym; - + - if (ev.id == Event.KEY_PRESS) { - vlog.debug("key press "+ev.key); - if (ev.key < 32) { @@ -120,7 +120,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn + if (ev.getKeyChar() < 32) { // if the ctrl modifier key is down, send the equivalent ASCII since we // will send the ctrl modifier anyway - + - if ((ev.modifiers & Event.CTRL_MASK) != 0) { - keysym = ev.key + 96; + if ((ev.getModifiers() & KeyEvent.CTRL_MASK) != 0) { @@ -140,18 +140,18 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn default: return; } } - + - } else if (ev.key == 127) { + } else if (ev.getKeyChar() == 127) { keysym = rfb.Keysyms.Delete; - + } else { - keysym = rfb.UnicodeToKeysym.translate(ev.key); + keysym = rfb.UnicodeToKeysym.translate(ev.getKeyChar()); if (keysym == -1) return; } - + } else { // KEY_ACTION - vlog.debug("key action "+ev.key); @@ -207,20 +207,20 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn default: return; } } - + - writeModifiers(ev.modifiers); + writeModifiers(ev.getModifiers()); writeKeyEvent(keysym, true); writeKeyEvent(keysym, false); writeModifiers(0); } - - + + - synchronized public void writePointerEvent(Event ev) { + synchronized public void writePointerEvent(MouseEvent ev) { if (state() != RFBSTATE_NORMAL) return; + int x, y; - + - switch (ev.id) { - case Event.MOUSE_DOWN: + switch (ev.getID()) { @@ -236,10 +236,10 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn buttonMask = 0; break; } - + - writeModifiers(ev.modifiers & ~Event.ALT_MASK & ~Event.META_MASK); + writeModifiers(ev.getModifiers() & ~KeyEvent.ALT_MASK & ~KeyEvent.META_MASK); - + - if (ev.x < 0) ev.x = 0; - if (ev.x > cp.width-1) ev.x = cp.width-1; - if (ev.y < 0) ev.y = 0; @@ -250,10 +250,10 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vn + if (x > cp.width-1) x = cp.width-1; + if (y < 0) y = 0; + if (y > cp.height-1) y = cp.height-1; - + - writer().writePointerEvent(ev.x, ev.y, buttonMask); + writer().writePointerEvent(x, y, buttonMask); - + if (buttonMask == 0) writeModifiers(0); } diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ClipboardDialog.java vnc-4_1-javasrc/java/vncviewer/ClipboardDialog.java @@ -261,15 +261,15 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ClipboardDialog.java vnc-4_1-javas +++ vnc-4_1-javasrc/java/vncviewer/ClipboardDialog.java 2007-06-27 18:38:29.996193000 +0800 @@ -19,10 +19,11 @@ package vncviewer; - + import java.awt.*; +import java.awt.event.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; - + -class ClipboardDialog extends vncviewer.Dialog { +class ClipboardDialog extends vncviewer.Dialog implements ActionListener { - + public ClipboardDialog(CConn cc_) { super(false); @@ -34,10 +35,13 @@ @@ -284,12 +284,12 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ClipboardDialog.java vnc-4_1-javas pb.add(cancelButton); + cancelButton.addActionListener(this); add("South", pb); - + pack(); @@ -75,20 +79,20 @@ sendButton.setEnabled(b); } - + - public boolean action(Event event, Object arg) { - if (event.target == clearButton) { + public void actionPerformed(ActionEvent e) { @@ -310,19 +310,19 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ClipboardDialog.java vnc-4_1-javas } - return true; } - + CConn cc; diff -urN vnc-4_1-javasrc.orig/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc/java/vncviewer/DesktopWindow.java --- vnc-4_1-javasrc.orig/java/vncviewer/DesktopWindow.java 2005-03-11 00:55:07.000000000 +0800 +++ vnc-4_1-javasrc/java/vncviewer/DesktopWindow.java 2007-06-28 16:14:34.925355000 +0800 @@ -25,10 +25,17 @@ - + package vncviewer; import java.awt.*; +import java.awt.event.*; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; - + -class DesktopWindow extends Canvas implements Runnable { +class DesktopWindow extends Canvas implements + Runnable, @@ -331,11 +331,11 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc + KeyListener, + FocusListener +{ - + //////////////////////////////////////////////////////////////////// // The following methods are all called from the RFB thread @@ -40,6 +47,11 @@ - + cursor = new rfb.Cursor(); cursorBacking = new rfb.ManagedPixelBuffer(); + addMouseListener(this); @@ -344,12 +344,12 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc + this.setFocusTraversalKeysEnabled(false); + addFocusListener(this); } - + // initGraphics() is needed because for some reason you can't call @@ -235,10 +247,67 @@ } } - + + /** Mouse-Motion callback function */ + private void mouseMotionCB(MouseEvent event) { + if (!cc.viewer.viewOnly.getValue()) @@ -370,7 +370,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc + } + } + lastX = event.getX(); -+ lastY = event.getY(); ++ lastY = event.getY(); + } + public void mouseDragged(MouseEvent event) { mouseMotionCB(event);} + public void mouseMoved(MouseEvent event) { mouseMotionCB(event);} @@ -386,8 +386,8 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc + public void mousePressed(MouseEvent event) { mouseCB(event);} + public void mouseClicked(MouseEvent event){} + public void mouseEntered(MouseEvent event){} -+ public void mouseExited(MouseEvent event){} -+ ++ public void mouseExited(MouseEvent event){} ++ + /** Handle the key-typed event. */ + public void keyTyped(KeyEvent event) {} + /** Handle the key-released event. */ @@ -405,22 +405,22 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc + checkClipboard(); + } + public void focusLost(FocusEvent event) {} -+ ++ // handleEvent(). Called by the GUI thread and calls on to CConn as // appropriate. CConn is responsible for synchronizing the writing of key // and pointer events with other protocol messages. - + +/* public boolean handleEvent(Event event) { switch (event.id) { case Event.GOT_FOCUS: @@ -296,7 +365,7 @@ - + return super.handleEvent(event); } - +*/ - + //////////////////////////////////////////////////////////////////// // The following methods are called from both RFB and GUI threads diff -urN vnc-4_1-javasrc.orig/java/vncviewer/Dialog.java vnc-4_1-javasrc/java/vncviewer/Dialog.java @@ -428,32 +428,32 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/Dialog.java vnc-4_1-javasrc/java/v +++ vnc-4_1-javasrc/java/vncviewer/Dialog.java 2007-06-27 11:32:16.321858000 +0800 @@ -27,10 +27,14 @@ package vncviewer; - + import java.awt.*; +import java.awt.event.*; - + -class Dialog extends Frame { +class Dialog extends Frame implements WindowListener { - + - public Dialog(boolean modal_) { modal = modal_; } + public Dialog(boolean modal_) { + modal = modal_; + addWindowListener (this); + } - + public boolean showDialog() { ok = false; @@ -67,12 +71,21 @@ // to make sure that checkboxes have the right state, etc. public void initDialog() {} - + - public boolean handleEvent(Event event) { - if (event.id == Event.WINDOW_DESTROY) { - ok = false; - endDialog(); -- } +- } - return super.handleEvent(event); -+ //------------------------------------------------------------------ ++ //------------------------------------------------------------------ + // implemented blank methods + public void windowClosed(WindowEvent event){} + public void windowDeiconified(WindowEvent event){} @@ -469,21 +469,21 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/Dialog.java vnc-4_1-javasrc/java/v + ok = false; + endDialog(); } - + protected boolean ok, done; diff -urN vnc-4_1-javasrc.orig/java/vncviewer/InfoDialog.java vnc-4_1-javasrc/java/vncviewer/InfoDialog.java --- vnc-4_1-javasrc.orig/java/vncviewer/InfoDialog.java 2005-03-11 00:55:07.000000000 +0800 +++ vnc-4_1-javasrc/java/vncviewer/InfoDialog.java 2007-06-27 18:39:20.187657000 +0800 @@ -19,8 +19,9 @@ package vncviewer; - + import java.awt.*; +import java.awt.event.*; - + -class InfoDialog extends vncviewer.Dialog { +class InfoDialog extends vncviewer.Dialog implements ActionListener { - - public InfoDialog() { + + public InfoDialog() { super(false); @@ -43,6 +44,7 @@ Panel p2 = new Panel(); @@ -491,12 +491,12 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/InfoDialog.java vnc-4_1-javasrc/ja p2.add(okButton); + okButton.addActionListener(this); add("South", p2); - + pack(); @@ -81,12 +83,12 @@ - pack(); + pack(); } - + - public boolean action(Event event, Object arg) { - if (event.target == okButton) { + public void actionPerformed(ActionEvent e) { @@ -507,38 +507,38 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/InfoDialog.java vnc-4_1-javasrc/ja } - return true; } - + // TextArea infoLabel; diff -urN vnc-4_1-javasrc.orig/java/vncviewer/OptionsDialog.java vnc-4_1-javasrc/java/vncviewer/OptionsDialog.java --- vnc-4_1-javasrc.orig/java/vncviewer/OptionsDialog.java 2005-03-11 00:55:07.000000000 +0800 +++ vnc-4_1-javasrc/java/vncviewer/OptionsDialog.java 2007-06-27 19:11:27.028914000 +0800 @@ -19,8 +19,12 @@ package vncviewer; - + import java.awt.*; +import java.awt.event.*; - + -class OptionsDialog extends vncviewer.Dialog { +class OptionsDialog extends vncviewer.Dialog implements + ActionListener, + ItemListener +{ - - public OptionsDialog(OptionsDialogCallback cb_) { + + public OptionsDialog(OptionsDialogCallback cb_) { super(false); @@ -31,8 +35,11 @@ - - Panel tabPanel = new Panel(); - tabPanel.add(encodingSel=new Button("Encoding")); + + Panel tabPanel = new Panel(); + tabPanel.add(encodingSel=new Button("Encoding")); + encodingSel.addActionListener(this); - tabPanel.add(inputSel=new Button("Inputs")); + tabPanel.add(inputSel=new Button("Inputs")); - tabPanel.add(miscSel=new Button("Misc")); + inputSel.addActionListener(this); + tabPanel.add(miscSel=new Button("miscSel")); + miscSel.addActionListener(this); - add(tabPanel, BorderLayout.NORTH); - - cardPanel = new Panel(); + add(tabPanel, BorderLayout.NORTH); + + cardPanel = new Panel(); @@ -78,8 +85,10 @@ Panel pb = new Panel(); okButton = new Button("OK"); @@ -548,7 +548,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/OptionsDialog.java vnc-4_1-javasrc pb.add(cancelButton); + cancelButton.addActionListener(this); add(pb, BorderLayout.SOUTH); - + pack(); @@ -113,6 +122,7 @@ Checkbox c = new Checkbox(str); @@ -557,7 +557,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/OptionsDialog.java vnc-4_1-javasrc + c.addItemListener(this); return c; } - + @@ -120,34 +130,40 @@ Checkbox c = new Checkbox(str, group, false); panelGB.setConstraints(c, panelGBC); @@ -565,7 +565,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/OptionsDialog.java vnc-4_1-javasrc + c.addItemListener(this); return c; } - + - public boolean action(Event event, Object arg) { - if (event.target == okButton) { + public void actionPerformed(ActionEvent e) { @@ -584,8 +584,8 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/OptionsDialog.java vnc-4_1-javasrc - raw.setEnabled(!autoSelect.getState()); - } else if (event.target == encodingSel) { + } else if (s instanceof Button && (Button)s == encodingSel) { - ((CardLayout)cardPanel.getLayout()).show(cardPanel, "Encoding and Colour Level:"); - makeBold(encodingSel); + ((CardLayout)cardPanel.getLayout()).show(cardPanel, "Encoding and Colour Level:"); + makeBold(encodingSel); - } else if (event.target == inputSel) { + } else if (s instanceof Button && (Button)s == inputSel) { ((CardLayout)cardPanel.getLayout()).show(cardPanel, "Inputs:"); @@ -597,7 +597,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/OptionsDialog.java vnc-4_1-javasrc } - return true; } -- +- + + public void itemStateChanged(ItemEvent e) { + Object s = e.getSource(); @@ -616,13 +616,13 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/PasswdDialog.java vnc-4_1-javasrc/ +++ vnc-4_1-javasrc/java/vncviewer/PasswdDialog.java 2007-06-28 13:14:37.246375000 +0800 @@ -19,8 +19,9 @@ package vncviewer; - + import java.awt.*; +import java.awt.event.*; - + -class PasswdDialog extends vncviewer.Dialog { +class PasswdDialog extends vncviewer.Dialog implements KeyListener{ - + public PasswdDialog(String title, boolean userDisabled, boolean passwdDisabled) { super(true); @@ -32,6 +33,7 @@ @@ -631,7 +631,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/PasswdDialog.java vnc-4_1-javasrc/ p1.add(userEntry); + userEntry.addKeyListener(this); add("Center", p1); - + Panel p2 = new Panel(); @@ -42,24 +44,34 @@ passwdEntry.setEnabled(!passwdDisabled); @@ -639,10 +639,10 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/PasswdDialog.java vnc-4_1-javasrc/ p2.add(passwdEntry); + passwdEntry.addKeyListener(this); add("South", p2); - + pack(); } - + - synchronized public boolean action(Event event, Object arg) { - if (event.target == userEntry) { + /** Handle the key-typed event. */ @@ -674,17 +674,17 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/PasswdDialog.java vnc-4_1-javasrc/ } - return true; } - + Label userLabel; diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ServerDialog.java vnc-4_1-javasrc/java/vncviewer/ServerDialog.java --- vnc-4_1-javasrc.orig/java/vncviewer/ServerDialog.java 2005-03-11 00:55:07.000000000 +0800 +++ vnc-4_1-javasrc/java/vncviewer/ServerDialog.java 2007-06-27 19:54:23.828917000 +0800 @@ -19,9 +19,12 @@ package vncviewer; - + import java.awt.*; +import java.awt.event.*; - + -class ServerDialog extends vncviewer.Dialog { - +class ServerDialog extends vncviewer.Dialog implements @@ -704,25 +704,25 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ServerDialog.java vnc-4_1-javasrc/ addComponent(encryption = new Choice(), 1, 1, 2, 1, 0, new Insets(2, 0, 0, 0)); addComponent(optionsButton = new Button("Options..."), - 1, 2, 1, 1, 0, new Insets(8, 4, 4, 4)); + 1, 2, 1, 1, 0, new Insets(8, 4, 4, 4)); - addComponent(aboutButton = new Button("About..."), + optionsButton.addActionListener(this); + addComponent(aboutButton = new Button("About..."), - 0, 2, 1, 1, 35, new Insets(8, 4, 4, 4)); + 0, 2, 1, 1, 35, new Insets(8, 4, 4, 4)); + aboutButton.addActionListener(this); addComponent(okButton = new Button("OK"), - 2, 2, 1, 1, 40, new Insets(8, 4, 4, 4)); + 2, 2, 1, 1, 40, new Insets(8, 4, 4, 4)); + okButton.addActionListener(this); addComponent(cancelButton = new Button("Cancel"), 3, 2, 1, 1, 30, new Insets(8, 4, 4, 4)); + cancelButton.addActionListener(this); // Set default values if (defaultServerName != null) server.setText(defaultServerName); - encryption.add("Not supported"); + encryption.add("Not supported"); @@ -71,20 +79,34 @@ add(comp, gbc); } - + - synchronized public boolean action(Event event, Object arg) { - if (event.target == okButton || event.target == server) { + public void actionPerformed(ActionEvent e) { @@ -743,7 +743,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ServerDialog.java vnc-4_1-javasrc/ } - return true; } -+ ++ + /** Handle the key-typed event. */ + public void keyTyped(KeyEvent event) { } + /** Handle the key-released event. */ @@ -756,7 +756,7 @@ diff -urN vnc-4_1-javasrc.orig/java/vncviewer/ServerDialog.java vnc-4_1-javasrc/ + } + } + -+ - ++ + TextField server; Choice encryption; diff --git a/components/realvnc-java-client/patches/realvnc-java-client-04-highcolor.patch b/components/desktop/realvnc-java-client/patches/realvnc-java-client-04-highcolor.patch similarity index 99% rename from components/realvnc-java-client/patches/realvnc-java-client-04-highcolor.patch rename to components/desktop/realvnc-java-client/patches/realvnc-java-client-04-highcolor.patch index cd5739676..177f91903 100644 --- a/components/realvnc-java-client/patches/realvnc-java-client-04-highcolor.patch +++ b/components/desktop/realvnc-java-client/patches/realvnc-java-client-04-highcolor.patch @@ -4,7 +4,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rdr/InStream.java vnc-4_1-javasrc/java/rdr/In @@ -116,6 +116,48 @@ int b1 = b[ptr++]; int b2 = b[ptr++]; return b0 << 16 | b1 << 8 | b2; } - + + public final int readPixel() { return readU32(); } + + public final void readPixels(int[] buf, int length) { @@ -20,7 +20,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rdr/InStream.java vnc-4_1-javasrc/java/rdr/In + n -= ret; + } + } -+ ++ + /* CPIXEL is 3 bytes for true-colour = 1, bpp = 32, depth = 24, + * red-mask = 0xff0000, green-mask = 0xff00 and blue-mask = 0xff + */ @@ -34,7 +34,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rdr/InStream.java vnc-4_1-javasrc/java/rdr/In + + public final void readCPixels(int[] buf, int length) { + int n = length; -+ ++ + while (n > 0) { + int offset = length - n; + int ret; @@ -48,7 +48,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rdr/InStream.java vnc-4_1-javasrc/java/rdr/In + + // pos() returns the position in the stream. - + abstract public int pos(); diff -urN vnc-4_1-javasrc.sun/java/rfb/CMsgHandler.java vnc-4_1-javasrc/java/rfb/CMsgHandler.java --- vnc-4_1-javasrc.sun/java/rfb/CMsgHandler.java 2007-07-21 01:40:13.563246000 +0800 @@ -64,20 +64,20 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/CMsgHandler.java vnc-4_1-javasrc/java/rfb } @@ -55,7 +55,7 @@ public void serverCutText(String str) {} - + public void fillRect(int x, int y, int w, int h, int pix) {} - public void imageRect(int x, int y, int w, int h, byte[] pix, int offset) {} + public void imageRect(int x, int y, int w, int h, int[] pix) {} public void copyRect(int x, int y, int w, int h, int srcX, int srcY) {} - + public ConnParams cp; diff -urN vnc-4_1-javasrc.sun/java/rfb/CMsgReader.java vnc-4_1-javasrc/java/rfb/CMsgReader.java --- vnc-4_1-javasrc.sun/java/rfb/CMsgReader.java 2007-07-21 01:40:13.563414000 +0800 +++ vnc-4_1-javasrc/java/rfb/CMsgReader.java 2007-07-21 03:54:21.011746000 +0800 @@ -31,20 +31,11 @@ - + public rdr.InStream getInStream() { return is; } - + - public byte[] getImageBuf(int required, int requested) { - int requiredBytes = required * (handler.cp.pf().bpp / 8); - int requestedBytes = requested * (handler.cp.pf().bpp / 8); @@ -96,10 +96,10 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/CMsgReader.java vnc-4_1-javasrc/java/rfb/ - return imageBuf; } - + @@ -135,12 +126,12 @@ } - + protected void readSetCursor(int hotspotX, int hotspotY, int w, int h) { - int data_len = w * h * (handler.cp.pf().bpp/8); + int data_len = w * h; @@ -107,11 +107,11 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/CMsgReader.java vnc-4_1-javasrc/java/rfb/ - byte[] data = new byte[data_len]; + int[] data = new int[data_len]; byte[] mask = new byte[mask_len]; - + - is.readBytes(data, 0, data_len); + is.readPixels(data, data_len); is.readBytes(mask, 0, mask_len); - + handler.setCursor(hotspotX, hotspotY, w, h, data, mask); @@ -149,9 +140,8 @@ CMsgHandler handler; @@ -121,16 +121,16 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/CMsgReader.java vnc-4_1-javasrc/java/rfb/ + int[] imageBuf; int imageBufSize; - int imageBufIdealSize; - + static LogWriter vlog = new LogWriter("CMsgReader"); } diff -urN vnc-4_1-javasrc.sun/java/rfb/HextileDecoder.java vnc-4_1-javasrc/java/rfb/HextileDecoder.java --- vnc-4_1-javasrc.sun/java/rfb/HextileDecoder.java 2007-07-21 01:40:13.566481000 +0800 +++ vnc-4_1-javasrc/java/rfb/HextileDecoder.java 2007-07-21 03:57:45.031091000 +0800 @@ -22,12 +22,9 @@ - + public HextileDecoder(CMsgReader reader_) { reader = reader_; } - + - static final int BPP=8; - static final int readPixel(rdr.InStream is) { return is.readU8(); } - @@ -138,12 +138,12 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/HextileDecoder.java vnc-4_1-javasrc/java/ rdr.InStream is = reader.getInStream(); - byte[] buf = reader.getImageBuf(16 * 16 * 4, 0); + int[] buf = reader.getImageBuf(16 * 16 * 4); - + int bg = 0; int fg = 0; @@ -43,20 +40,20 @@ int tileType = is.readU8(); - + if ((tileType & Hextile.raw) != 0) { - is.readBytes(buf, 0, tw * th * (BPP/8)); - handler.imageRect(tx,ty,tw,th, buf, 0); @@ -151,29 +151,29 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/HextileDecoder.java vnc-4_1-javasrc/java/ + handler.imageRect(tx,ty,tw,th, buf); continue; } - + if ((tileType & Hextile.bgSpecified) != 0) - bg = readPixel(is); + bg = is.readPixel(); - + int len = tw * th; int ptr = 0; - while (len-- > 0) buf[ptr++] = (byte)bg; + while (len-- > 0) buf[ptr++] = bg; - + if ((tileType & Hextile.fgSpecified) != 0) - fg = readPixel(is); + fg = is.readPixel(); - + if ((tileType & Hextile.anySubrects) != 0) { int nSubrects = is.readU8(); @@ -64,7 +61,7 @@ for (int i = 0; i < nSubrects; i++) { - + if ((tileType & Hextile.subrectsColoured) != 0) - fg = readPixel(is); + fg = is.readPixel(); - + int xy = is.readU8(); int wh = is.readU8(); @@ -76,12 +73,12 @@ @@ -197,10 +197,10 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/ManagedPixelBuffer.java vnc-4_1-javasrc/j @@ -28,10 +28,10 @@ checkDataSize(); } - + - public int dataLen() { return area() * (getPF().bpp/8); } + public int dataLen() { return area(); } - + final void checkDataSize() { if (data == null || data.length < dataLen()) - data = new byte[dataLen()]; @@ -218,10 +218,10 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelBuffer.java vnc-4_1-javasrc/java/rfb +// PixelBuffer - note that this code is only written for the 32bpp case at the // moment. // - + @@ -29,8 +29,8 @@ } - + public void setPF(PixelFormat pf) { - if (pf.bpp != 8) - throw new rfb.Exception("Internal error: bpp must be 8 in PixelBuffer"); @@ -233,7 +233,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelBuffer.java vnc-4_1-javasrc/java/rfb @@ -39,28 +39,22 @@ public final int height() { return height_; } public final int area() { return width_ * height_; } - + - public int getStride() { return width_; } - public void fillRect(int x, int y, int w, int h, int pix) { @@ -247,7 +247,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelBuffer.java vnc-4_1-javasrc/java/rfb + for (int rx = x; rx < x + w; rx++) + data[ry * width_ + rx] = pix; } - + - public void imageRect(int x, int y, int w, int h, byte[] pix, int offset) { - int bytesPerPixel = getPF().bpp/8; - int bytesPerDestRow = bytesPerPixel * getStride(); @@ -256,7 +256,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelBuffer.java vnc-4_1-javasrc/java/rfb - System.arraycopy(pix, offset+j*w, data, (y+j) * bytesPerDestRow + x, w); + System.arraycopy(pix, (w * j), data, width_ * (y + j) + x, w); } - + public void copyRect(int x, int y, int w, int h, int srcX, int srcY) { - int dest = x + y * getStride(); - int src = srcX + srcY * getStride(); @@ -271,12 +271,12 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelBuffer.java vnc-4_1-javasrc/java/rfb @@ -75,27 +69,31 @@ } } - + - public void maskRect(int x, int y, int w, int h, byte[] pix, byte[] mask) { + public void maskRect(int x, int y, int w, int h, int[] pix, byte[] mask) { int maskBytesPerRow = (w + 7) / 8; - int stride = getStride(); -+ ++ for (int j = 0; j < h; j++) { int cy = y + j; - if (cy >= 0 && cy < height_) { @@ -291,7 +291,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelBuffer.java vnc-4_1-javasrc/java/rfb - } - } - } -+ ++ + if (cy < 0 || cy >= height_) + continue; + @@ -306,13 +306,13 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelBuffer.java vnc-4_1-javasrc/java/rfb + + if ((mask[byte_] & (1 << bit)) != 0) + data[cy * width_ + cx] = pix[j * w + i]; -+ } ++ } } } - + - public byte[] data; + public int[] data; - + protected PixelFormat format; protected int width_, height_; diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelFormat.java vnc-4_1-javasrc/java/rfb/PixelFormat.java @@ -324,16 +324,16 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/PixelFormat.java vnc-4_1-javasrc/java/rfb } - public PixelFormat() { this(8,8,false,true,7,7,3,0,3,6); } + public PixelFormat() { this(32, 24, true, true, 0xff, 0xff, 0xff, 16, 8, 0);} - + public boolean equal(PixelFormat x) { return (bpp == x.bpp && diff -urN vnc-4_1-javasrc.sun/java/rfb/RREDecoder.java vnc-4_1-javasrc/java/rfb/RREDecoder.java --- vnc-4_1-javasrc.sun/java/rfb/RREDecoder.java 2007-07-21 01:40:13.567934000 +0800 +++ vnc-4_1-javasrc/java/rfb/RREDecoder.java 2007-07-21 04:05:32.633576000 +0800 @@ -22,17 +22,14 @@ - + public RREDecoder(CMsgReader reader_) { reader = reader_; } - + - static final int BPP=8; - static final int readPixel(rdr.InStream is) { return is.readU8(); } - @@ -343,7 +343,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/RREDecoder.java vnc-4_1-javasrc/java/rfb/ - int bg = readPixel(is); + int bg = is.readPixel(); handler.fillRect(x,y,w,h, bg); - + for (int i = 0; i < nSubrects; i++) { - int pix = readPixel(is); + int pix = is.readPixel(); @@ -355,7 +355,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/RawDecoder.java vnc-4_1-javasrc/java/rfb/ +++ vnc-4_1-javasrc/java/rfb/RawDecoder.java 2007-07-21 04:06:03.921877000 +0800 @@ -23,17 +23,10 @@ public RawDecoder(CMsgReader reader_) { reader = reader_; } - + public void readRect(int x, int y, int w, int h, CMsgHandler handler) { - byte[] imageBuf = reader.getImageBuf(w, w*h); - int nPixels = imageBuf.length / (reader.bpp() / 8); @@ -373,7 +373,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/RawDecoder.java vnc-4_1-javasrc/java/rfb/ + reader.getInStream().readPixels(imageBuf, w * h); + handler.imageRect(x, y, w, h, imageBuf); } - + CMsgReader reader; diff -urN vnc-4_1-javasrc.sun/java/rfb/ZRLEDecoder.java vnc-4_1-javasrc/java/rfb/ZRLEDecoder.java --- vnc-4_1-javasrc.sun/java/rfb/ZRLEDecoder.java 2007-07-21 01:40:13.569746000 +0800 @@ -381,7 +381,7 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/ZRLEDecoder.java vnc-4_1-javasrc/java/rfb @@ -25,12 +25,9 @@ zis = new rdr.ZlibInStream(); } - + - static final int BPP=8; - static final int readPixel(rdr.InStream is) { return is.readU8(); } - @@ -389,31 +389,31 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/ZRLEDecoder.java vnc-4_1-javasrc/java/rfb rdr.InStream is = reader.getInStream(); - byte[] buf = reader.getImageBuf(64 * 64 * 4, 0); + int[] buf = reader.getImageBuf(64 * 64 * 4); - + int length = is.readU32(); zis.setUnderlying(is, length); @@ -48,10 +45,8 @@ int palSize = mode & 127; int[] palette = new int[128]; - + - for (int i = 0; i < palSize; i++) { - palette[i] = readPixel(zis); - } - + zis.readCPixels(palette, palSize); -+ ++ if (palSize == 1) { int pix = palette[0]; handler.fillRect(tx,ty,tw,th, pix); @@ -63,7 +58,7 @@ - + // raw - + - zis.readBytes(buf, 0, tw * th * (BPP / 8)); + zis.readCPixels(buf, tw * th); - + } else { - + @@ -85,7 +80,7 @@ } nbits -= bppp; @@ -435,27 +435,27 @@ diff -urN vnc-4_1-javasrc.sun/java/rfb/ZRLEDecoder.java vnc-4_1-javasrc/java/rfb @@ -111,7 +106,7 @@ throw new Exception("ZRLEDecoder: assertion (len <= end - ptr)" +" failed"); - + - while (len-- > 0) buf[ptr++] = (byte)pix; + while (len-- > 0) buf[ptr++] = pix; } } else { - + @@ -138,12 +133,12 @@ - + int pix = palette[index]; - + - while (len-- > 0) buf[ptr++] = (byte)pix; + while (len-- > 0) buf[ptr++] = pix; } } } - + - handler.imageRect(tx,ty,tw,th, buf, 0); + handler.imageRect(tx,ty,tw,th, buf); } } - + diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vncviewer/CConn.java --- vnc-4_1-javasrc.sun/java/vncviewer/CConn.java 2007-07-21 01:40:13.572486000 +0800 +++ vnc-4_1-javasrc/java/vncviewer/CConn.java 2007-07-21 04:19:26.328456000 +0800 @@ -470,7 +470,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc // CConn @@ -141,9 +141,8 @@ } - + setServerName(sock.getInetAddress().getHostAddress()+"::"+sock.getPort()); - jis = new rdr.JavaInStream(sock.getInputStream()); - jos = new rdr.JavaOutStream(sock.getOutputStream()); @@ -490,7 +490,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc serverPF = cp.pf(); desktop = new DesktopWindow(serverPF, this); @@ -205,11 +206,12 @@ - + // setDesktopSize() is called when the desktop size changes (including when // it is set initially). - public void setDesktopSize(int w, int h) { @@ -502,7 +502,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc + writer().writeFramebufferUpdateRequest(0, 0, cp.width, cp.height, false); } } - + @@ -218,19 +220,15 @@ // computed within beginRect() and endRect() to select the format and // encoding appropriately, and then request another incremental update. @@ -515,7 +515,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc autoSelectFormatAndEncoding(); requestNewUpdate(); } - + - // The rest of the callbacks are fairly self-explanatory... - - public void setColourMapEntries(int firstColour, int nColours, int[] rgbs) { @@ -523,16 +523,16 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc - } - public void bell() { desktop.getToolkit().beep(); } - + public void serverCutText(String str) { @@ -239,13 +237,11 @@ } - + public void beginRect(int x, int y, int w, int h, int encoding) { - jis.startTiming(); desktop.beginRect(x, y, w, h, encoding); } - + public void endRect(int x, int y, int w, int h, int encoding) { desktop.endRect(x, y, w, h, encoding); - jis.stopTiming(); @@ -551,15 +551,15 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc public void copyRect(int x, int y, int w, int h, int sx, int sy) { desktop.copyRect(x, y, w, h, sx, sy); } - + public void setCursor(int hotspotX, int hotspotY, int w, int h, - byte[] data, byte[] mask) { + int[] data, byte[] mask) { desktop.setCursor(hotspotX, hotspotY, w, h, data, mask); } - + @@ -272,12 +268,14 @@ - + void recreateViewport() { - if (viewport != null) viewport.dispose(); @@ -572,10 +572,10 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc + desktop.requestFocus(); + if (oldViewport != null) oldViewport.dispose(); } - + void reconfigureViewport() @@ -333,7 +331,7 @@ - + // requestNewUpdate() requests an update from the server, having set the // format and encoding appropriately. - void requestNewUpdate() @@ -601,9 +601,9 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc + !formatChange); formatChange = false; } - + @@ -427,8 +421,8 @@ - + public void getOptions() { autoSelect = options.autoSelect.getState(); -// if (fullColour != options.fullColour.getState()) @@ -619,16 +619,16 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/CConn.java vnc-4_1-javasrc/java/vnc } - viewer.fastCopyRect.setParam(options.fastCopyRect.getState()); - -+ ++ checkEncodings(); } - + diff -urN vnc-4_1-javasrc.sun/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc/java/vncviewer/DesktopWindow.java --- vnc-4_1-javasrc.sun/java/vncviewer/DesktopWindow.java 2007-07-21 01:40:13.573008000 +0800 +++ vnc-4_1-javasrc/java/vncviewer/DesktopWindow.java 2007-07-21 04:23:51.620057000 +0800 @@ -30,7 +30,6 @@ import java.awt.datatransfer.Transferable; - + class DesktopWindow extends Canvas implements - Runnable, MouseListener, @@ -636,7 +636,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc/ KeyListener, @@ -67,7 +66,7 @@ // wherever they access data shared with the GUI thread. - + synchronized public void setCursor(int hotspotX, int hotspotY, int w, int h, - byte[] data, byte[] mask) { + int[] data, byte[] mask) { @@ -646,7 +646,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc/ @@ -93,26 +92,6 @@ showLocalCursor(); } - + - // setColourMapEntries() changes some of the entries in the colourmap. - // Unfortunately these messages are often sent one at a time, so we delay the - // settings taking effect unless the whole colourmap has changed. This is @@ -672,7 +672,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc/ vlog.debug("DesktopWindow.resize() called"); @@ -171,9 +150,9 @@ } - + synchronized final public void imageRect(int x, int y, int w, int h, - byte[] pix, int offset) { + int[] pix) { @@ -693,8 +693,8 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc/ } @@ -419,26 +398,12 @@ } - - + + - // run() is executed by the setColourMapEntriesTimerThread - it sleeps for - // 100ms before actually updating the colourmap. - public void run() { @@ -710,12 +710,12 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/DesktopWindow.java vnc-4_1-javasrc/ - // access to cc by different threads is specified in CConn CConn cc; - + // access to the following must be synchronized: PixelBufferImage im; Graphics graphics; - Thread setColourMapEntriesTimerThread; - + rfb.Cursor cursor; boolean cursorVisible; // Is cursor currently rendered? diff -urN vnc-4_1-javasrc.sun/java/vncviewer/PixelBufferImage.java vnc-4_1-javasrc/java/vncviewer/PixelBufferImage.java @@ -727,9 +727,9 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/PixelBufferImage.java vnc-4_1-javas public PixelBufferImage(int w, int h, java.awt.Component win) { - setPF(new rfb.PixelFormat(8, 8, false, false, 0, 0, 0, 0, 0, 0)); + setPF(new rfb.PixelFormat(32, 24, true, true, 0xff, 0xff, 0xff, 16, 8, 0)); - + resize(w, h, win); - + - reds = new byte[256]; - greens = new byte[256]; - blues = new byte[256]; @@ -744,11 +744,11 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/PixelBufferImage.java vnc-4_1-javas - cm = new IndexColorModel(8, 256, reds, greens, blues); + cm = new DirectColorModel(24, 0xff << 16, 0xff << 8, 0xff); } - + // resize() resizes the image, preserving the image data where possible. public void resize(int w, int h, java.awt.Component win) { if (w == width() && h == height()) return; - + - // Clear the ImageConsumer so that we don't attempt to do any drawing until - // the AWT has noticed that the resize has happened. - ic = null; @@ -760,14 +760,14 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/PixelBufferImage.java vnc-4_1-javas + int copyWidth = w < width() ? w : width(); + int oldWidth = width(); + int[] oldData = data; - + width_ = w; height_ = h; image = win.createImage(this); - + - data = new byte[width() * height() * (format.bpp/8)]; + data = new int[width() * height()]; - + - int newStrideBytes = getStride() * (format.bpp/8); for (int i = 0; i < rowsToCopy; i++) - System.arraycopy(oldData, oldStrideBytes * i, @@ -775,7 +775,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/PixelBufferImage.java vnc-4_1-javas + System.arraycopy(oldData, copyWidth * i, + data, width() * i, copyWidth); } - + // put() causes the given rectangle to be drawn using the given graphics // context. public void put(int x, int y, int w, int h, Graphics g) { @@ -790,7 +790,7 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/PixelBufferImage.java vnc-4_1-javas g.drawImage(image, 0, 0, null); } @@ -87,33 +72,22 @@ - + public void copyRect(int x, int y, int w, int h, int srcX, int srcY) { super.copyRect(x, y, w, h, srcX, srcY); - if (ic == null) return; @@ -814,32 +814,32 @@ diff -urN vnc-4_1-javasrc.sun/java/vncviewer/PixelBufferImage.java vnc-4_1-javas + ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); } } - + // ImageProducer methods - + - public void updateColourMap() { - cm = new IndexColorModel(8, 256, reds, greens, blues); - } - public void addConsumer(ImageConsumer c) { + if (ic == c) return; -+ ++ vlog.debug("adding consumer "+c); -+ ++ + if (ic != null) + vlog.error("Only one ImageConsumer allowed - discarding old one"); -+ ++ ic = c; ic.setDimensions(width(), height()); ic.setHints(ImageConsumer.RANDOMPIXELORDER); @@ -134,13 +108,8 @@ public void startProduction(ImageConsumer c) { addConsumer(c); } - + Image image; - Graphics graphics; ImageConsumer ic; ColorModel cm; - + - byte[] reds; - byte[] greens; - byte[] blues; diff --git a/components/realvnc-java-client/patches/realvnc-java-client-05-g11n-use-remote-im.patch b/components/desktop/realvnc-java-client/patches/realvnc-java-client-05-g11n-use-remote-im.patch similarity index 99% rename from components/realvnc-java-client/patches/realvnc-java-client-05-g11n-use-remote-im.patch rename to components/desktop/realvnc-java-client/patches/realvnc-java-client-05-g11n-use-remote-im.patch index 355513ff7..6d067546d 100644 --- a/components/realvnc-java-client/patches/realvnc-java-client-05-g11n-use-remote-im.patch +++ b/components/desktop/realvnc-java-client/patches/realvnc-java-client-05-g11n-use-remote-im.patch @@ -3,7 +3,7 @@ @@ -63,6 +63,12 @@ public class Keysyms { public static final int script_switch = 0xFF7E; public static final int Num_Lock = 0xFF7F; - + + public static final int KP_Left = 0xFF96; + public static final int KP_Up = 0xFF97; + public static final int KP_Right = 0xFF98; @@ -26,7 +26,7 @@ @@ -775,6 +775,11 @@ public class UnicodeToKeysym { (unicode >= 0xa0 && unicode <= 0xff)) return unicode; - + + /* From HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61) + * To HALFWIDTH KATAKANA SEMI-VOICED SOURND MARK (U+FF9F) */ + if ((unicode >= 0xff61 && unicode <= 0xff9f)) diff --git a/components/realvnc-java-client/patches/realvnc-java-client-06-makefile-install.patch b/components/desktop/realvnc-java-client/patches/realvnc-java-client-06-makefile-install.patch similarity index 94% rename from components/realvnc-java-client/patches/realvnc-java-client-06-makefile-install.patch rename to components/desktop/realvnc-java-client/patches/realvnc-java-client-06-makefile-install.patch index f9e45581f..a00d58600 100644 --- a/components/realvnc-java-client/patches/realvnc-java-client-06-makefile-install.patch +++ b/components/desktop/realvnc-java-client/patches/realvnc-java-client-06-makefile-install.patch @@ -1,8 +1,8 @@ --- vnc-4_1-javasrc/java/makefile.orig 2014-06-25 23:54:24.877741320 +0400 +++ vnc-4_1-javasrc/java/makefile 2014-06-25 23:58:50.132761116 +0400 @@ -19,6 +19,8 @@ - $(RM) vncviewer.jar - + $(RM) vncviewer.jar + install: - if [ -d $(INSTALL_DIR) ]; then \ - cp -pf index.vnc vncviewer.jar logo150x150.gif $(INSTALL_DIR); \ @@ -10,4 +10,4 @@ + rm -rf "$(DESTDIR)/usr/share/vino/" ; \ + mkdir -p "$(DESTDIR)/usr/share/vino/" ; \ + install --mode=0555 vncviewer.jar vino-client.html "$(DESTDIR)/usr/share/vino/"; \ - fi + fi diff --git a/components/realvnc-java-client/realvnc-java-client.p5m b/components/desktop/realvnc-java-client/realvnc-java-client.p5m similarity index 50% rename from components/realvnc-java-client/realvnc-java-client.p5m rename to components/desktop/realvnc-java-client/realvnc-java-client.p5m index 7df22e01d..92bcc75d8 100644 --- a/components/realvnc-java-client/realvnc-java-client.p5m +++ b/components/desktop/realvnc-java-client/realvnc-java-client.p5m @@ -1,25 +1,26 @@ # # This file and its contents are supplied under the terms of the -# Common Development and Distribution License ("CDDL"). You may -# only use this file in accordance with the terms of the CDDL. +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this -# source. A copy of the CDDL is also available via the Internet at +# source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # -# Copyright 2014 Alexander Pyhalov. All rights reserved. +# Copyright 2017 Alexander Pyhalov # -set name=pkg.fmri value=pkg:/desktop/remote-desktop/realvnc/java-client@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) +set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) set name=pkg.summary value="$(COMPONENT_SUMMARY)" -set name=info.classification value="org.opensolaris.category.2008:System/X11" +set name=info.classification value="$(COMPONENT_CLASSIFICATION)" set name=info.upstream-url value=$(COMPONENT_PROJECT_URL) set name=info.source-url value=$(COMPONENT_ARCHIVE_URL) set name=org.opensolaris.consolidation value=$(CONSOLIDATION) -license LICENCE.txt license='GPLv2' +license $(COMPONENT_LICENSE_FILE) license='$(COMPONENT_LICENSE)' file path=usr/share/vino/vino-client.html file path=usr/share/vino/vncviewer.jar -- 2.11.4.GIT