Fixes the display of the remote video in a call which could appear as a single pixel (on Windows at least).

cusax-fix
Lyubomir Marinov 13 years ago
parent 7ed8a54917
commit 66584bbd44

@ -6,8 +6,6 @@
*/
package net.java.sip.communicator.impl.gui.main;
import java.util.*;
/**
* The <tt>UINotification</tt> class represents a notification received in the
* user interface. This could be a missed call, voicemail, email notification or

@ -15,7 +15,6 @@
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.resources.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.skin.*;
/**

@ -265,6 +265,16 @@ else if (!frame.equals(this))
/* This Frame will try to adjust only its own size. */
return;
}
else if ((component.getHeight() >= height)
&& (component.getWidth() >= width))
{
/*
* We will only enlarge the frame size. If the component has already
* been given at least what it is requesting, do not enlarge the
* frame size because the whole calculation is prone to inaccuracy.
*/
return;
}
else
{
/*
@ -328,13 +338,13 @@ else if (!frame.equals(this))
* we may think that it will calculate an appropriate
* preferredSize itself.
*/
Dimension preferredSize = ancestor.getPreferredSize();
Dimension prefSize = ancestor.getPreferredSize();
if (preferredSize != null)
if (prefSize != null)
{
component = ancestor;
width = preferredSize.width;
height = preferredSize.height;
width = prefSize.width;
height = prefSize.height;
}
}
}
@ -408,6 +418,22 @@ else if (!changeHeight)
frame.setBounds(
newFrameX, newFrameY,
newFrameWidth, newFrameHeight);
/*
* Make sure that the component which originally requested the
* update to the size of the frame realizes the change as soon
* as possible; otherwise, it may request yet another update.
*/
if (frame.isDisplayable())
{
if (frame.isValid())
frame.doLayout();
else
frame.validate();
frame.repaint();
}
else
frame.doLayout();
}
}
}

@ -812,7 +812,7 @@ private void doUpdateSettingsPanelInEventDispatchThread(
if(videoTelephonyIsLocalVideoStreaming
&& call instanceof MediaAwareCall
&& ((MediaAwareCall) call).getMediaUseCase()
&& ((MediaAwareCall<?,?,?>) call).getMediaUseCase()
== MediaUseCase.DESKTOP)
{
desktopSharingIsStreamed = true;
@ -1515,18 +1515,18 @@ else if (ev.getType() == VideoEvent.VIDEO_ADDED)
&& UIVideoHandler2.isAncestor(this, video)
&& video.isPreferredSizeSet())
{
Dimension preferredSize = video.getPreferredSize();
Dimension prefSize = video.getPreferredSize();
if ((preferredSize.height > 0) && (preferredSize.width > 0))
if ((prefSize.height > 0) && (prefSize.width > 0))
{
Dimension size = video.getSize();
if ((preferredSize.height > size.height)
|| (preferredSize.width > size.width))
if ((prefSize.height > size.height)
|| (prefSize.width > size.width))
{
ensureSize(
video,
preferredSize.width, preferredSize.height);
prefSize.width, prefSize.height);
}
}
}
@ -2094,7 +2094,7 @@ private void updateViewFromModelInEventDispatchThread()
* dedicated to it. Try to detect such cases and attempt to adjust the
* Frame's size accordingly.
*/
Dimension oldPreferredSize = getPreferredSize();
Dimension oldPrefSize = getPreferredSize();
doUpdateViewFromModelInEventDispatchThread();
@ -2105,30 +2105,30 @@ private void updateViewFromModelInEventDispatchThread()
* current Frame has dedicated to it. Try to detect such cases and
* attempt to adjust the Frame's size accordingly.
*/
Dimension newPreferredSize = getPreferredSize();
Dimension newPrefSize = getPreferredSize();
if ((newPreferredSize != null)
&& ((newPreferredSize.height > getHeight())
|| (newPreferredSize.width > getWidth())))
if ((newPrefSize != null)
&& ((newPrefSize.height > getHeight())
|| (newPrefSize.width > getWidth())))
{
int oldPreferredHeight, oldPreferredWidth;
int oldPrefHeight, oldPrefWidth;
if (oldPreferredSize == null)
if (oldPrefSize == null)
{
oldPreferredHeight = 0;
oldPreferredWidth = 0;
oldPrefHeight = 0;
oldPrefWidth = 0;
}
else
{
oldPreferredHeight = oldPreferredSize.height;
oldPreferredWidth = oldPreferredSize.width;
oldPrefHeight = oldPrefSize.height;
oldPrefWidth = oldPrefSize.width;
}
if ((newPreferredSize.height != oldPreferredHeight)
|| (newPreferredSize.width != oldPreferredWidth))
if ((newPrefSize.height != oldPrefHeight)
|| (newPrefSize.width != oldPrefWidth))
{
ensureSize(
this,
newPreferredSize.width, newPreferredSize.height);
newPrefSize.width, newPrefSize.height);
}
}
}

@ -15,7 +15,6 @@
import net.java.sip.communicator.impl.gui.utils.*;
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.service.resources.*;
import net.java.sip.communicator.util.*;
import org.jitsi.service.neomedia.*;

@ -10,7 +10,6 @@
import net.java.sip.communicator.service.contactsource.*;
import net.java.sip.communicator.service.ldap.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.*;
import org.jitsi.service.resources.*;

@ -248,39 +248,39 @@ public synchronized void ldapEventReceived(LdapEvent event)
LdapQuery query;
switch(event.getCause())
{
case NEW_SEARCH_RESULT:
LdapPersonFound result = (LdapPersonFound) event.getContent();
query = result.getQuery();
if(this.pendingSearches.get(query) != null)
case NEW_SEARCH_RESULT:
LdapPersonFound result = (LdapPersonFound) event.getContent();
query = result.getQuery();
if(this.pendingSearches.get(query) != null)
{
this.fireLdapEvent(event, pendingSearches.get(query).
getCaller());
logger.trace("result event for query \"" +
result.getQuery().toString() + "\" forwaded");
}
break;
case SEARCH_ERROR:
case SEARCH_CANCELLED:
case SEARCH_ACHIEVED:
query = (LdapQuery) event.getContent();
if(this.pendingSearches.get(query) != null)
{
this.pendingSearches.get(query).getPendingServers().remove(
event.getSource());
logger.trace("end event for query \"" + query.toString() +
"\" on directory \"" + event.getSource() + "\"");
if(pendingSearches.get(query).getPendingServers().
size() == 0)
{
this.fireLdapEvent(event, pendingSearches.get(query).
fireLdapEvent(event, pendingSearches.get(query).
getCaller());
logger.trace("result event for query \"" +
result.getQuery().toString() + "\" forwaded");
event = new LdapEvent(this,
LdapEvent.LdapEventCause.SEARCH_ACHIEVED,
query);
pendingSearches.remove(query);
}
break;
case SEARCH_ERROR:
case SEARCH_CANCELLED:
case SEARCH_ACHIEVED:
query = (LdapQuery) event.getContent();
if(this.pendingSearches.get(query) != null)
{
this.pendingSearches.get(query).getPendingServers().remove(
event.getSource());
logger.trace("end event for query \"" + query.toString() +
"\" on directory \"" + event.getSource() + "\"");
if(pendingSearches.get(query).getPendingServers().
size() == 0)
{
fireLdapEvent(event, pendingSearches.get(query).
getCaller());
event = new LdapEvent(this,
LdapEvent.LdapEventCause.SEARCH_ACHIEVED,
query);
pendingSearches.remove(query);
}
}
break;
}
break;
}
}
}

@ -11,7 +11,6 @@
import javax.swing.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.Logger;
import org.jitsi.util.*;

@ -10,7 +10,6 @@
import javax.swing.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.skin.*;
/**

@ -10,8 +10,6 @@
import javax.swing.*;
import net.java.sip.communicator.util.*;
import org.jitsi.service.resources.*;
/**

@ -11,7 +11,6 @@
import javax.swing.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.Logger;
import net.java.sip.communicator.util.skin.*;

@ -7,12 +7,11 @@
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import net.java.sip.communicator.util.*;
import org.jitsi.service.resources.*;
/**

@ -17,7 +17,6 @@
import javax.swing.*;
import net.java.sip.communicator.service.keybindings.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.Logger;
import org.jitsi.service.configuration.*;

@ -13,7 +13,6 @@
import javax.swing.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.skin.*;
import org.jitsi.util.*;

@ -10,7 +10,6 @@
import javax.swing.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.skin.*;
import org.jitsi.service.resources.*;

@ -18,8 +18,6 @@
import javax.security.auth.x500.*;
import javax.swing.*;
import net.java.sip.communicator.util.*;
import org.jitsi.service.resources.*;
/**
@ -385,12 +383,19 @@ private String getHex( byte [] raw )
StringBuilder hex = new StringBuilder(2 * raw.length);
Formatter f = new Formatter(hex);
for (byte b : raw)
try
{
f.format("%02x", b);
for (byte b : raw)
f.format("%02x", b);
}
finally
{
f.close();
}
return hex.toString();
} /**
}
/**
* Calculates the hash of the certificate known as the "thumbprint"
* and returns it as a string representation.
*
@ -414,9 +419,14 @@ private static String getThumbprint(X509Certificate cert, String algorithm)
byte[] encodedCert = cert.getEncoded();
StringBuilder sb = new StringBuilder(encodedCert.length * 2);
Formatter f = new Formatter(sb);
for (byte b : digest.digest(encodedCert))
try
{
for (byte b : digest.digest(encodedCert))
f.format("%02x", b);
}
finally
{
f.format("%02x", b);
f.close();
}
return sb.toString();
}

@ -22,7 +22,6 @@
import javax.swing.text.*;
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.skin.*;
/**

@ -23,9 +23,8 @@
import javax.swing.plaf.basic.*;
import javax.swing.text.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.skin.*;
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.util.skin.*;
/**
* SIPCommTabbedPaneUI implementation.

@ -20,7 +20,6 @@
import org.jitsi.service.neomedia.codec.*;
import org.jitsi.service.resources.*;
/**
* The encodings configuration panel (used in the account configuration wizards)
*

Loading…
Cancel
Save