summaryrefslogtreecommitdiff
path: root/noncore/comm/keypebble/krfbbuffer.cpp
Side-by-side diff
Diffstat (limited to 'noncore/comm/keypebble/krfbbuffer.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/comm/keypebble/krfbbuffer.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/noncore/comm/keypebble/krfbbuffer.cpp b/noncore/comm/keypebble/krfbbuffer.cpp
index 5a52f31..f1cb929 100644
--- a/noncore/comm/keypebble/krfbbuffer.cpp
+++ b/noncore/comm/keypebble/krfbbuffer.cpp
@@ -8,2 +8,4 @@
#include "krfbbuffer.h"
+#include "krfbconnection.h"
+#include "krfbserver.h"
#include "krfbserverinfo.h"
@@ -88,2 +90,3 @@ void KRFBBuffer::drawRawRectChunk( void *data,
+ int scaleFactor=decoder->con->options()->scaleFactor;
int redMax = Swap16IfLE( decoder->format->redMax );
@@ -99,3 +102,4 @@ void KRFBBuffer::drawRawRectChunk( void *data,
- for ( int j = 0; j < h; j++ ) {
+
+ for ( int j = 0; j < h; j++) {
for ( int i = 0; i < w ; i++ ) {
@@ -189,5 +193,10 @@ void KRFBBuffer::drawRawRectChunk( void *data,
- p.drawImage( x, y, img );
-
- emit updated( x, y, w, h );
+ if (scaleFactor > 1) {
+ p.drawImage( x/scaleFactor, y/scaleFactor, img.smoothScale(w/scaleFactor,h/scaleFactor) );
+ emit updated( x/scaleFactor, y/scaleFactor, w/scaleFactor, h/scaleFactor );
+ }
+ else {
+ p.drawImage( x, y, img);
+ emit updated( x, y, w, h );
+ }
}